
Spring
文章平均质量分 67
阿湯哥
用心生活!爱每一天!
展开
-
Filter 和 HandlerInterceptor 的执行顺序
Filter 在请求到达 Spring MVC DispatcherServlet 之前执行,而 HandlerInterceptor 在请求到达 DispatcherServlet 后,但在进入 Controller 之前执行。原创 2024-05-09 22:24:48 · 780 阅读 · 0 评论 -
Camel Quartz Component创建QuartzScheduler的过程
首先创建Quartz配置,然后创建StdSchedulerFactory,然后创建StdScheduler。然后在Spring配置文件中进行配置,例如如果要调整Quartz线程池的大小可以参考下面的配置。在QuartzComponent启动时会对QuartzScheduler进行初始化。在创建QuartzScheduler之前首先要创建SchedulerFactory。如果使用Spring Boot可以引入自动配置包。原创 2023-03-27 20:29:16 · 500 阅读 · 1 评论 -
org.quartz.jobStore.misfireThreshold配置的作用
Cron Trigger还有另外一种MISFIRE_INSTRUCTION_DO_NOTHING策略,针对该策略Cron Trigger的处理为设置setNextFireTime为触发器的下一次正常触发时间。如果同时满足执行条件的Trigger比较多,而线程池却比较小,那么可能导致有些Trigger在规定的时间没有被触发,对于这些未被按时触发的Trigger,Quartz是如何处理的呢?第二步:对misfire Trigger的处理,这个针对不同的Trigger,其处理逻辑不同。原创 2023-03-23 22:20:46 · 1249 阅读 · 0 评论 -
Spring如何实现Quartz的自动配置
如果想在应用中使用Quartz任务调度功能,可以通过Spring Boot实现Quartz的自动配置。以下介绍如何开启Quartz自动配置,以及Quartz自动配置的实现过程。原创 2023-03-22 21:10:34 · 2696 阅读 · 0 评论 -
Camel FTP Component中的任务调度实现原理
之前我们介绍了和。今天介绍一下再Camel的FtpComponent组件中是如何实现任务调度的,如果有了以上两篇文章做基础,下面的内容将会非常简单了。其中重点留意以下两个参数,这两个参数的意思是使用Quartz任务调度,使用cron触发器,每5分钟执行一次任务。那么Camel是如何将这两个endpoint的配置项转换为具体的QuartzScheduler的呢?我们知道Camel的endpoint可以创建consumer和producer。原创 2023-03-27 21:17:00 · 520 阅读 · 0 评论 -
web.xml中Filter如何引用Spring中定义的Bean
【代码】web.xml中Filter如何引用Spring中定义的Bean。原创 2023-02-03 17:59:25 · 287 阅读 · 0 评论 -
Spring3.*中ASM和JDK8版本冲突问题及解决方案
Spring3.* 中ASM版本较低,不支持对 JDK8 class文件进行操作,启动时报错。org.springframework.asm.MethodVisitor.visitParameter原创 2023-01-16 18:20:52 · 1511 阅读 · 0 评论 -
使用Springdoc搭建openapi文档管理服务
使用springdoc搭建api文档管理服务参考参考https://springdoc.org/原创 2021-06-18 19:45:46 · 4384 阅读 · 0 评论 -
Spring boot 1.5.9升级2.3.5时上传文件大小限制失效问题的解决
Spring boot 1.5.9升级2.3.5时上传文件大小限制失效问题的解决最近进行spring boot 升级,将版本由 1.5.9 升级到 2.3.5,在1.5.9版本时设置的允许上传文件的大小限制为100M,然而升级到 2.3.5 后,上传文件报错。Caused by: org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field originalFile exce原创 2021-01-25 10:55:20 · 362 阅读 · 1 评论 -
SpringBoot升级日志 - JSON时间格式问题
SpringBoot升级日志 - JSON时间格式问题问题描述系统原先使用Spring Boot 1.5.9,目前升级到2.3.5。结果日期显示全部显示 1970-01-01(前端使用vue开发)问题分析:经过比对,发现1.5.9版本下返回的日期格式是时间戳,而2.3.5版本下默认返回的是UTC时间字符串因此导致vue无法对日期进行正确处理。解决方法:(前提:应用使用Jackson进行JSON转换)在配置文件增加配置:spring: jackson: serializat原创 2020-12-29 11:38:16 · 509 阅读 · 0 评论 -
ApplicationRunner & CommandLineRunner
ApplicationRunner & CommandLineRunnerSpring容器启用后可以通过这两个Runner进行一些初始化处理。如果需要添加Runner只需要实现ApplicationRunner接口或CommandLineRunner接口,并将其添加到容器即可。private void callRunners(ApplicationContext context, ApplicationArguments args) { List<Object> runners =原创 2020-12-17 18:18:28 · 202 阅读 · 0 评论 -
BeanCurrentlyInCreationException简单剖析
BeanCurrentlyInCreationException简单剖析Reference创建bean源码获取单例bean源码Spring为解决循环依赖问题,会创建 early bean(如果是单例,且当前处于正在创建状态,则符合创建early bean的条件)。如 A -> B, B->A如果假设当前正在创建bean A,A是单例,则此时会创建一个 early bean = new A();然后继续创建 bean A,此时需要进行属性绑定,则此时会创建 bean B,创建B时发现B同时原创 2020-12-17 11:07:19 · 1552 阅读 · 0 评论 -
Differences of HandlerInterceptor & Filter
HandlerInterceptor & Filter参考HandlerInterceptor is basically similar to a Servlet Filter, but in contrast to the latter it just allows custom pre-processing with the option of prohibiting the ex...原创 2020-03-03 23:47:49 · 162 阅读 · 0 评论 -
Difference between servlet and root context
Difference between servlet and root context参考Spring allows you to build multilevel application context hierarchies, so the required bean will be fetched from the parent context if it’s not present in...转载 2019-12-26 20:33:20 · 148 阅读 · 0 评论 -
Spring @Autowired Annotation
Spring @Autowired AnnotationSpring @Autowired Annotation参考Spring @Autowired annotation is used for automatic dependency injection. Spring framework is built on dependency injection and we inject the ...转载 2019-12-26 18:36:54 · 228 阅读 · 0 评论 -
Difference of @Autowired @Inject @Resource
difference of @Autowired @Inject @ResourceThe main difference is that, @Autowired and @Inject works similar for 100% without any differentiation.These two annotations using AutowiredAnnotationBeanPos...原创 2019-12-26 16:27:20 · 130 阅读 · 0 评论 -
@EnableScheduling @Scheduled 注解
org.springframework.scheduling.TaskScheduler或java.util.concurrent.ScheduledExecutorService。主要逻辑判定当前bean是否有@Scheduled注解的方法,如果存在则创建相应的任务并触发。主要作用是清空没有@Scheduled注解的类的缓存信息。可以通过配置文件修改线程池大小和线程池前缀等信息。,该方法在所有单例Bean初始化完成后执行。,该方法在每个bean初始化完成后调用。添加该注解的作用主要是引入。原创 2019-05-30 18:40:12 · 1272 阅读 · 1 评论 -
Spring 的事件机制(应用事件和容器事件)
Spring Boot in Action - Spring boot的事件机制(应用事件和容器事件)1. 应用事件和容器事件2. 应用事件2.1 应用事件的触发顺序2.2 应用事件的注册方式3. 容器事件3.2 含容器事件的事件触发顺序3.1 容器事件的注册方式1. 应用事件和容器事件应用事件为Spring boot启动过程中的事件,对应类SpringApplicationEvent;容器事...原创 2019-06-03 13:12:44 · 705 阅读 · 0 评论 -
Spring Boot Application的启动过程 - 加载应用上下文
SpringBoot的启动流程,ApplicationContext的初始化过程,BeanFactory的创建过程,Bean的生命周期管理,这些是Spring中最最核心的东西,你认知Spring这么多年了,你真的了解她吗?你不了解她怎么可能获得她的芳心呢?从现在开始了解她吧,你越了解她你就越会被她的魔力所吸引,爱上她是你今生最大的福气!关键代码 + 简单注解,有问题随时提问,Welcome!原创 2019-05-21 17:05:24 · 414 阅读 · 2 评论 -
Spring Web - WebServer 自动配置的实现及嵌入式 Tomcat 的启动过程
想知道WebServer自动配置是如何实现的吗,都有哪些自动配置类,他们都各自承担了什么样的职责?想知道嵌入式WebServer的启动过程吗?听说ServletContextAwareProcessor是个BeanPostProcessor,它是干啥的?何时创建WebServer对象?都不用web.xml了,那怎么配置DispatcherServlet,怎么配置Filter?又是何时开始启动WebServer的呢?好想一探究竟啊……原创 2019-05-22 15:31:29 · 2209 阅读 · 0 评论 -
Spring Web - 与 ServletContainer 初始化相关的 Initializer
如果你正在认真的研读源码,如果你发现这么多的Initializer让你很头痛!me too!让我来为你解忧吧!1. org.springframework.context.ApplicationContextInitializer2. javax.servlet.ServletContainerInitializer3. org.springframework.web.SpringServletContainerInitializer4. org.springframework.web.WebApp原创 2019-05-27 17:36:07 · 993 阅读 · 0 评论 -
Maven profile 与 Spring profile 联动实现 profile 配置
如何通过Spring的profile功能对不同环境下的属性进行配置?如何激活Spring的profile配置?Maven Profile是如何实现的?如何设置默认激活?如果想在项目构建时通过命令行动态指定profile,实现Maven profile和Spring Profile的联动该如何设置?什么是资源过滤,如何修改默认通配符?OH, Let'GO!原创 2019-05-28 12:22:34 · 1524 阅读 · 0 评论 -
容器初始化 - ApplicationContextInitializer
Spring Boot In Action - ApplicationContextInitializer1. org.springframework.context.ApplicationContextInitializer1. org.springframework.context.ApplicationContextInitializerCallback interface for i...原创 2019-06-11 19:50:45 · 337 阅读 · 0 评论 -
BeanFactoryPostProcessor 的处理逻辑
BeanDefinitionRegistryPostProcessor和BeanFactoryPostProcessor的处理逻辑和优先级原创 2019-06-17 16:05:36 · 215 阅读 · 0 评论 -
@Configuration注解类的处理逻辑 - ConfigurationClassPostProcessor
1. 在ConfigurationClassPostProcessor之前1.1 初始化Bean Definition1.2 预置BeanDefinitionRegistryPostProcessor注册的bean2. ConfigurationClassPostProcessor2.1 递归处理2.2 各注解加载顺序2.3 ComponentScan的处理逻辑2.4 Import的处理逻辑3. 自定义BeanDefinitionRegistryPostProcessor注册的bean原创 2019-06-17 17:16:01 · 492 阅读 · 0 评论 -
ApplicationContext如何动态添加 Bean Definition
可以通过引入ImportBeanDefinitionRegistrar实现类,注册BeanDefinitionRegistryPostProcessor等方法动态添加bean definition,本文主要针对其使用方式做简要介绍,如果想了解具体的实现原理可以参考[Spring Boot in Action - ConfigurationClassPostProcessor的处理逻辑-基于注解的bean定义加载过程]原创 2019-06-18 09:53:15 · 2500 阅读 · 0 评论 -
Spring中常用的工具类
对Spring中一些常见的工具类进行整理备用原创 2019-06-18 10:05:18 · 374 阅读 · 0 评论 -
根据条件加载配置 - ImportSelector
Spring Boot in Action - ImportSelector-根据条件加载配置1. 自定义ImportSelector2. 配置ImportSelector通过ImportSelector可以帮助我们从多个配置类中选择你需要的配置类进行加载。例如典型的自动配置类的加载过程中,Spring boot autoconfiguration有118个自动配置类,但是最终只有22个配置类...原创 2019-06-18 14:22:13 · 1111 阅读 · 0 评论 -
声明式事务(Transactional)的工作原理
[SBIA-24] - MyBatis自动配置的实现原创 2019-08-12 18:44:30 · 1766 阅读 · 0 评论 -
Spring容器、Bean生命周期
Spring容器、Bean生命周期(Spring in Action)1. 常见的应用上下文2. Bean生命周期在基于Spring的应用中,你的应用对象生存于Spring容器中。Spring容器负责创建对象、封装它们、配置它们并管理它们的整个生命周期,从生存到死亡(在这里可能就是new到finalize)。容器是Spring框架的核心。Spring容器使用DI管理构成应用的组件,它会创建相互...原创 2019-05-20 16:52:41 · 595 阅读 · 0 评论