
Spring Boot
文章平均质量分 73
阿湯哥
用心生活!爱每一天!
展开
-
Filter 和 HandlerInterceptor 的执行顺序
Filter 在请求到达 Spring MVC DispatcherServlet 之前执行,而 HandlerInterceptor 在请求到达 DispatcherServlet 后,但在进入 Controller 之前执行。原创 2024-05-09 22:24:48 · 780 阅读 · 0 评论 -
Spring Boot实现web.xml功能
通过上述介绍我们了解到,在Spring Boot应用中,我们可以通过注解和编程两种方式实现web.xml的功能,包括如何创建及注册Servlet、Filter以及Listener等。至于具体采用哪种方式,大家可以根据自己的喜好自行选择。原创 2023-09-18 18:04:03 · 4246 阅读 · 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 评论 -
Spring Boot 整合 RabbitMQ 实现
而RabbitAdmin Bean是在RabbitAutoConfiguration自动配置类中注册的,通过设置 spring.rabbitmq.dynamic 为false可以禁用该功能。下列代码创建类型为topic、名称为test_topic_exchange的exchange,当routingKey满足test.#时消息会被路由到 test_queue 队列。查看Consumer端日志,未回告原因是因为Consumer端没有处理test_queue队列中String类型消息的Handler。原创 2022-09-30 20:59:46 · 1644 阅读 · 0 评论 -
Netty服务器的启动过程
[SCIA-01] - Netty服务器的启动过程1. SpringApplication.run2.1. SpringApplication.runSpring通过SpringApplication.run启动应用程序,在应用启动过程会根据WebApplicationType创建ApplicationContext。判定WebApplicationType逻辑是如果存在org.spring...原创 2019-08-27 18:16:07 · 936 阅读 · 0 评论 -
log4j-slf4j-impl cannot be present with log4j-to-slf4j
log4j-slf4j-impl cannot be present with log4j-to-slf4j这个错误的意思是 log4j-slf4j-impl 和 log4j-to-slf4j 这两个包不能同时存在。那么为什么这两个包不能同时存在呢?我们先来看一下这两个包的定义:log4j-slf4j-implThe Apache Log4j SLF4J API binding to Log4j 2 Corelog4j-to-slf4jThe Apache Log4j binding betw原创 2021-06-22 15:39:54 · 40103 阅读 · 0 评论 -
Spring Boot中如何添加自定义 Servlet
Spring Boot中如何添加自定义 Servlet示例 - Camel中的应用参考如果想在SpringBoot启动的应用中添加自己的Servlet,首先需要了解 Servlet Container(默认Tomcat)的启动过程,与 Servlet Container 启动相关的初始化类参考下面的文章。Spring Web - 与 ServletContainer 初始化相关的 Initializer如果需要添加Servlet配置,需要编写ServletRegistrationBean的实现类并注册原创 2021-04-14 15:54:57 · 769 阅读 · 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 · 361 阅读 · 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 · 508 阅读 · 0 评论 -
Too many keys are generated. There are only 1 target objects.
Too many keys are generated. There are only 1 target objects.记一次由spring boot升级导致的问题解决。版本信息:mybatis-spring-boot-starter : 2.1.4mybatis-spring: 2.0.6mybatis : 3.5.6mysql-connector-java: 8.0.22错误日志:Caused by: org.apache.ibatis.executor.ExecutorExcepti原创 2020-12-22 20:19:31 · 10465 阅读 · 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 评论 -
通过WebServerFactoryCustomizer进行WebServer的个性化配置
通过WebServerFactoryCustomizer进行WebServer的个性化配置Spring boot 使用嵌入式应用服务器时,如果希望对 WebServer 进行某些个性化配置,可以通过创建 WebServerFactoryCustomizer子类的 实例并注册为 Bean 的方式实现。WebServerFactory 对象创建完毕后, WebServerFactoryCustom...原创 2019-12-13 16:06:03 · 8932 阅读 · 0 评论 -
SLF4J、JCL、JUL、log4j、logback的关系
SLF4J、JCL、JUL、log4j、logback的关系1. 名词解释1.1 JUL(java.util.logging)1.2 log4j1.3 logback1.4 JCL(Jakarta/Apache Commons logging)1.5 SLF4J1.6 小结2. 桥接遗留接口参考1. 名词解释1.1 JUL(java.util.logging)Java自带的日志系统。1.2...原创 2019-11-12 16:25:08 · 1142 阅读 · 1 评论 -
@AutoConfigurationPackage注解
[SBIA-28] - @AutoConfigurationPackage注解参考AutoConfigurationPackage注解的作用是将添加该注解的类所在的package作为自动配置package进行管理。可以通过AutoConfigurationPackage获取自动配置package列表。原理:注意事项:注意自动配置依赖关系示例:参考Spring boot web 应用 ...原创 2019-09-25 14:46:27 · 20435 阅读 · 30 评论 -
Spring Boot 的类型转换实现
[SBIA-29] - Spring Boot 的类型转换实现1. 转换的配置2. 绑定的方式3. 转换的执行1. 转换的配置WebFlux转换服务是通过 org.springframework.boot.autoconfigure.web.format.WebConversionService 实现的,他实现在不同类型的属性之间进行转换。其类图如下图所示其提供多种默认类型的转换,开发人...原创 2019-10-16 18:12:40 · 598 阅读 · 0 评论 -
自动配置类的加载方式和时机
[SBIA-18] - 自动配置类的加载方式和时机1. 加载方式2. 加载时机1. 加载方式SpringApplicationContext的启动过程主要分为几个步骤加载BeanDefinition注册BeanPostProcessor实例化Bean调用BeanPostProcessor对于Application内定义的BeanDefinition我们可以通过ComponentS...原创 2019-08-08 15:41:35 · 396 阅读 · 0 评论 -
Spring Boot 自定义属性配置
Spring Boot自定义配置 - Spring Boot In Action1. 覆盖Spring Boot自动配置2. 通过属性文件外置配置1. 覆盖Spring Boot自动配置想要覆盖Spring Boot的自动配置,你所要做的仅仅是编写一个显式的配置。SpringBoot会发现你的配置,随后降低自动配置的优先级,以你的配置为准。Spring Boot的设计是加载应用级配置,...原创 2019-05-15 09:43:12 · 840 阅读 · 0 评论 -
使用 Log4J2 日志系统
如果你还没有习惯使用Logback,虽然我认为它确实是一个比Log4j更好的选择,没有关系,让我来告诉你怎么做吧!第一、修改下你的Maven配置,exclusive logging starter,add log4j2 starter。第二、配置文件给你准备好了,你甚至无需了解每一个配置都是干什么用的,拿来改改就好!第三、如果你想给你的配置文件来一个特殊的名字,如果你想临时设置一下某些package的日志输出级别,改改属性配置就好了。拿走不谢!原创 2019-05-24 14:08:39 · 396 阅读 · 0 评论 -
Spring Boot Application的启动过程 - 加载应用上下文
SpringBoot的启动流程,ApplicationContext的初始化过程,BeanFactory的创建过程,Bean的生命周期管理,这些是Spring中最最核心的东西,你认知Spring这么多年了,你真的了解她吗?你不了解她怎么可能获得她的芳心呢?从现在开始了解她吧,你越了解她你就越会被她的魔力所吸引,爱上她是你今生最大的福气!关键代码 + 简单注解,有问题随时提问,Welcome!原创 2019-05-21 17:05:24 · 413 阅读 · 2 评论 -
深入起步依赖(以spring-boot-starter-web为例)
SpringBoot的核心:起步依赖+自动配置。什么是起步依赖呢,就是pom文件的模块化配置,将不同的功能配置成不同的pom文件,使用时通过引入starter依赖就可以增加该功能。那么你想了解这些pom文件之间的依赖关系吗?相信我它真的很美!Come on!原创 2019-05-17 18:00:18 · 15355 阅读 · 1 评论 -
基于 JAR、WAR 的部署应用
Spring的可行执行JAR不喜欢?部署起来超尴尬?没有start、stop执行脚本?那么试试WAR部署吧!听起来不错,怎么配置呢?你知道你的WAR包也可以通过java命令行启动吗?咋就这么神奇?你还在等什么……原创 2019-05-27 18:26:48 · 165 阅读 · 0 评论 -
SpringBoot日志系统的实现原理
SpringBoot应用启动的那一刻就开始输出日志啦!你了解SpringBoot日志系统的架构吗?你了解应用事件(SpringApplicationEvent)和容器事件(ApplicationContextEvent)吗?你知道ApplicationContextInitializer吗?那么SpringBoot的日志系统是如何巧妙的利用这些事件和Initializer来完成日志系统的创建和关键节点的日志输出的呢?咳咳,我这么写你能懂吗……^_^原创 2019-05-23 17:49:36 · 1504 阅读 · 0 评论 -
使用 Logback 日志系统
一开始我是抵触的,但很多时候你的抵触源于你的无知和不思进取。好吧,废话少说,Logback真是一个不错的选择。第一、对于SpringBoot来讲你甚至不需要额外的Maven配置就可以使用第二、配置文件何须从零来造,我们给你准备了一个demo,我想对大多数应用已经够了第三、默认的名字不够酷,没关系改一个!开发环境临时改一下某个package的日志输出级别,可以可以!属性文件配置下所有问题全搞定!走你……原创 2019-05-24 11:16:51 · 388 阅读 · 0 评论 -
解决 WAR 部署方式下日志配置不生效的问题
为什么通过Jar运行的时候日志可以正常输出,使用War包部署就不行了呢?配置文件为什么没有生效?属性配置是有优先级的,你了解属性的配置方式以及他们之间的优先顺序吗?怎么设置可以提升属性的优先级?如果我不想通过提升优先级改变属性加载顺序,有没有其他方式可以解决这个问题呢?想了解的请进来……原创 2019-05-28 17:12:37 · 4351 阅读 · 4 评论 -
org.slf4j.LoggerFactory#getLogger 源码解析(含 log4j 和 logback )
我们使用日志系统的时候非常简单LoggerFactory.getLogger就可以搞定一切那么你了解这简单背后的设计和实现吗?你知道Slf4j是如何发现日志系统的底层实现的吗?你了解LoggerFactory、LoggerContext、Logger之间的关系吗?你知道Log4j和Logback实现之间的差异吗?请走进日志系统的世界……原创 2019-05-29 15:01:10 · 4508 阅读 · 0 评论 -
数据源自动配置(DataSourceAutoConfiguration)
[SBIA-25] - About DataSourceAutoConfiguration1. DataSourceAutoConfiguration1.1.2 DataSourceTransactionManagerAutoConfiguration1.2 @EnableTransactionManagement参考1. DataSourceAutoConfiguration嵌入式数据库支...原创 2019-08-14 18:11:57 · 8191 阅读 · 0 评论 -
MyBatis自动配置(MyBatisAutoConfiguration)
[SBIA-27] - 数据源自动配置(DataSourceAutoConfiguration)原创 2019-08-15 15:46:44 · 3634 阅读 · 0 评论 -
通过appassembler-maven-plugin和maven-assembly-plugin插件生成spring boot执行包
通过appassembler-maven-plugin和maven-assembly-plugin插件生成spring boot安装包appassembler-maven-plugin配置maven-assembly-plugin配置maven configurationpackage.xml configurationstart.sh -- generated by appassemblesto...原创 2019-10-11 17:31:05 · 1711 阅读 · 0 评论 -
Spring Boot 第一个应用程序
自动配置:针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置。起步依赖:告诉Spring Boot需要什么功能,它能引入需要的库。命令行界面: 这是Spring Boot的可选特性,借此你只需要写代码就能完成完整的应用程序,无需传统项目构建。Actuator:让你能够深入运行中的Spring Boot应用程序,一探究竟。原创 2019-05-09 20:10:32 · 312 阅读 · 0 评论