
SpringBoot
文章平均质量分 72
CaptainCats
悟已往之不谏、知来者之可追。
展开
-
spring框架源码十五、BeanFactory创建子流程
refresh()方法标志着spring容器启动过程开始,它主要做两件事:创建工厂、实例化bean对象。原创 2022-11-13 21:09:50 · 374 阅读 · 0 评论 -
maven deploy执行特别快,并且没有见到upload日志,不报错,但是也没成功
maven deploy执行特别快,并且没有见到upload日志,不报错,但是也没成功,原因是在项目的parent中配置了跳过deploy,我们只需要在自己的模块中添加,没有deploy到远程仓库。重写以下这块的配置。原创 2022-11-12 21:44:04 · 858 阅读 · 0 评论 -
feign调用中传递token
feign提供了RequestInterceptor,feign调用中传递token。原创 2022-11-12 21:43:10 · 720 阅读 · 0 评论 -
easyExcel报错:com.alibaba.excel.exception.ExcelGenerateException: Can not close IO
因为两个版本的poi,导致在调用easyExcel时发生了冲突。可以看到poi的相关的jar包版本是4.1.2,easyExcel版本为3.1.0,其中自带的poi版本为4.1.2,我们项目中一定有其它版本的poi,后来在parent的依赖中找到了,在自己的项目中,声明poi的版本。原创 2022-11-09 22:11:13 · 10049 阅读 · 0 评论 -
springboot下载src/main/resources下的Excel打不开
最近遇到下载导入模板的需求,我将模板Excel放在src/main/resources下,springboot下载src/main/resources下的Excel无法打开,原因是springboot会压缩src/main/resources下的文件,然后要记得clean install之后才会生效。解决办法:在pom.xml加入以下内容,不小心误伤了我们的模板Excel文件,结果下载下来后提示无法打开,原创 2022-11-09 22:10:41 · 1801 阅读 · 0 评论 -
response的Content-Length设置错误,导致springboot文件下载,代码已经return,postman一直等待到超时
response的head儿中设置了content-length,导致写出的数据不相等时,这一句在header中设置了内容的大小Content-Length是10240个字节,是10k,temp.txt文件大小在5k左右,这就导致response以为没下完,已写出的数据就是byte字节数组,后台已经处理完并且return。我还以为是文件有问题,找了半天也不知道是什么原因,请求处理完后,postman 一直在等待,postman 便一直等待,直至超时,便一致在等待,当然是等不到什么结果的,原创 2022-11-07 21:39:51 · 4507 阅读 · 0 评论 -
maven项目排除/屏蔽parent的plugin
这意味着所有parent的子项目都会引用spring-boot-maven-plugin这个插件,parent有两个module,其中module-web依赖module-api,其中module-api是一些基础的东西,module-web是将来要部署的项目,而module-api中只是一些基础api,没有springboot的启动类,不能让spring-boot-maven-plugin来二次打包,原因是module-api不是要部署的项目,说明module-api打的包有问题,原创 2022-10-29 20:54:59 · 4633 阅读 · 0 评论 -
springboot源码理解十二、springMVC功能
springboot版本:2.2.9.RELEASE。回忆一下,我们在普通的web项目中是如何使用springMVC的,首先需要在web.xml中配置DispatcherServlet,原创 2022-09-23 15:10:21 · 1130 阅读 · 1 评论 -
springboot源码理解十一、内嵌tomcat原理
默认Servlet容器切换Servlet容器内嵌tomcat自动配置原理tomcat自动配置类tomcat工厂类何时被调用onRefresh()finishRefresh()springboot版本:2.2.9.RELEASE。默认Servlet容器springboot默认支持tomcat、jetty、undertow作为底层容器,一旦引入spring-boot-starter-web模块,就默认使用tomcat。原创 2022-09-22 16:13:27 · 560 阅读 · 0 评论 -
springboot源码理解十、自定义starter改造
自定义starter改造热插拔技术新增标记类ConfigMarker新增@EnableRegisterServer注解修改自动配置类在spring-boot-mytest启动类添加注解原创 2022-09-21 17:13:45 · 331 阅读 · 0 评论 -
springboot源码理解九、自定义starter实现
starter起步依赖starter命名规则自定义starternew module添加依赖simplebean自动配置类META-INF\spring.factories在spring-boot-mytest中引入mystarter-spring-boot-starter添加配置通过@Autowired引用启动访问原创 2022-09-21 16:45:19 · 319 阅读 · 0 评论 -
springboot源码理解八、run方法执行过程(刷新应用上下文)
springboot版本:2.2.9.RELEASE。SpringApplication.run刷新应用上下文调用spring的refresh()方法invokeBeanFactoryPostProcessors(beanFactory)解析被@Configuration注解修饰的配置类处理@ComponentScan注解处理@Import注解原创 2022-09-20 18:57:24 · 910 阅读 · 0 评论 -
springboot源码理解七、run方法执行过程(刷新上下文前的准备阶段)
run方法执行过程(刷新上下文前的准备阶段)SpringApplication.run刷新上下文前的准备阶段springboot版本:2.2.9.RELEASE。SpringApplication.runrun方法是springboot启动过程中非常重要的步骤。原创 2022-09-20 12:03:04 · 520 阅读 · 0 评论 -
springboot源码理解六、run方法执行过程(获取启动监听器、构建上下文环境、初始化应用上下文)
SpringApplication.run获取启动监听器构建上下文环境创建上下文环境配置上下文环境启动对应的监听器初始化应用上下文原创 2022-09-19 15:45:08 · 517 阅读 · 0 评论 -
springboot源码理解五、SpringApplication初始化
加载classpath下(项目中),META-INF\spring.factories中配置的ApplicationContextInitializer。初始化器类加载META-INF\spring.factories中配置的ApplicationListener。监听器原创 2022-09-19 11:59:06 · 396 阅读 · 0 评论 -
springboot源码理解四、自动配置(项目根目录下的bean)
springboot会自动将一些类注册进spring IoC容器,包括有项目根目录下的、第三方依赖中的。@ComponentScan的作用是从扫描范围内,识别标注了@Component,及其衍生注解@RestController、@RequestMapping、@Service的类,注册到Spring IoC容器中。原创 2022-09-17 19:52:29 · 422 阅读 · 0 评论 -
springboot源码理解三、自动配置(第三方依赖中的bean)
springboot会自动将一些类注册进spring IoC容器,包括有项目根目录下的、第三方依赖中的。这次我们讲第三方依赖中的。原创 2022-09-16 23:34:59 · 1215 阅读 · 0 评论 -
springboot源码理解二、依赖管理
导入dependency时为什么不需要指定版本项目运行依赖的jar包从何而来starter起步依赖原创 2022-09-15 21:12:53 · 404 阅读 · 0 评论 -
springboot源码理解一、springboot源码环境搭建
修改spring-boot-mytest的springboot版本号为:‘2.2.9.RELEASE’。2.2.9.RELEASE,2.3.0以上版本需要用gradle构建,会比较麻烦。jdk版本:“1.8.0_171”,maven版本:3.8.6。选中模块→src/main/java→sources。不要使用阿里云仓库,否则一些依赖下载不到会报错,用maven自带的setting.xml。这样是为了方便我们debug调试。跳过测试,能节省很多时间。原创 2022-09-15 00:12:14 · 1941 阅读 · 0 评论 -
Spring IoC容器初始化过程-BeanDefinition的解析和载入
接下来是BeanDefinition的解析和载入。对于IoC容器来说,这一步相当于是把BeanDefinition定义的信息在IoC容器中转换为spring内部数据的过程,IoC容器对bean的管理是通过操作持有的BeanDefinition来实现的。原创 2022-09-13 18:25:01 · 489 阅读 · 0 评论 -
Spring IoC容器初始化过程
IoC(Inversion of Control),即控制反转,spring通过IoC容器创建bean并维护bean之间的关系,这是spring的核心,贯穿始终。它不是一项技术,而是一种思想,控制反转是相对来说的。一个A类中包含有一个B类的属性,我们认为A依赖B。}}普通情况下,我们在A对象中主动去创建依赖对象B,通过new关键字,spring是由IoC容器通过DI(Dependency Injection)方式注入依赖对象,被动获取资源,原创 2022-09-11 15:53:17 · 766 阅读 · 0 评论 -
springboot项目添加了logback-spring.xml配置文件不生效
springboot,logback-spring.xml不生效通常情况下springboot项目,只需在src/main/resources下添加logback-spring.xml即可,logback-spring.xml<?xml version="1.0" encoding="UTF-8"?><configuration debug="false" scan="false"> <property name="log.path" value="/opt/pig转载 2021-05-17 20:03:54 · 11518 阅读 · 1 评论 -
如何指定pig-register项目日志的输出路径
springboot,logback-spring.xml不生效通常情况下springboot项目,只需在src/main/resources下添加logback-spring.xml即可,logback-spring.xml<?xml version="1.0" encoding="UTF-8"?><configuration debug="false" scan="false"> <property name="log.path" value="/opt/pig转载 2021-05-17 20:03:44 · 296 阅读 · 0 评论 -
springboot,logback-spring.xml不生效
springboot,logback-spring.xml不生效通常情况下springboot项目,只需在src/main/resources下添加logback-spring.xml即可,logback-spring.xml<?xml version="1.0" encoding="UTF-8"?><configuration debug="false" scan="false"> <property name="log.path" value="/opt/pig原创 2021-05-17 20:03:30 · 7052 阅读 · 2 评论 -
@SpringBootApplication注解包含了哪些东西
@SpringBootApplication注解包含了哪些东西这片文章中会找到你想要的答案。*看一个SpringBoot入口类package com.example.multithread;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class原创 2020-10-13 13:30:01 · 9531 阅读 · 1 评论 -
SpringBoot入口类为什么要放在代码根目录下
SpringBoot入口类为什么要放在代码根目录下这片文章中会找到你想要的答案。*看一个SpringBoot入口类package com.example.multithread;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class Multi原创 2020-10-13 13:29:03 · 633 阅读 · 0 评论 -
META-INF/spring.factories文件的作用是什么
META-INF/spring.factories文件的作用是什么这片文章中会找到你想要的答案。*看一个SpringBoot入口类package com.example.multithread;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic cla原创 2020-10-13 13:28:30 · 12483 阅读 · 3 评论 -
SpringBoot如何加载代码根目录之外的Bean
SpringBoot如何加载代码根目录之外的Bean这片文章中会找到你想要的答案。*看一个SpringBoot入口类package com.example.multithread;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class Mult原创 2020-10-13 13:27:30 · 768 阅读 · 0 评论