![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
springbooot原理
文章平均质量分 95
五月天的尾巴
路漫漫其修远兮
展开
-
为什么Springboot项目中有些写法继承了SpringBootServletInitializer类?Springboot的两种发布方式
其实这是跟Springboot项目的发布方式有关,我们知道Springboot是内置了Tomcat容器的,所以一般服务器上不需要额外安装Tomcat程序,但是如果要使用外置的Tomcat容器则需要继承SpringBootServletInitializer并重写 configure() 方法原创 2023-11-14 19:28:05 · 471 阅读 · 0 评论 -
SpringBoot源码分析(8)--内置ApplicationContextInitializer
本文基于spring-boot-2.2.14.BUILD-SNAPSHOT源码分析。本篇文章是对上篇prepareContext的补充,在该方法的执行过程中,遍历了最初从META-INF/spring.factories文件中加载到的ApplicationContextInitializer,依次调用了其initialize方法。原创 2023-08-08 14:19:14 · 481 阅读 · 0 评论 -
SpringBoot源码分析(7)--prepareContext/准备应用上下文
二、prepareContext2.1、context.setEnvironment2.2、postProcessApplicationContext(context);2.3、applyInitializers(context)2.4、发布ApplicationContextInitializedEvent事件2.5、打印启动和profile日志2.6、注册单例Bean2.6.1、手工注册单例Bean流程2.7、初始化BeanDefinitionLoader, 加载Application原创 2023-08-06 17:57:19 · 412 阅读 · 0 评论 -
SpringBoot源码分析(6)--SpringBootExceptionReporter/异常报告器
本文基于spring-boot-2.2.14.BUILD-SNAPSHOT源码分析SpringBootExceptionReporter异常报告器本文主要内容是SpringBoot项目启动过程的异常分析器,也就是SpringBootExceptionReporter,回想我们启动项目的时候,是否会因为缺少数据库配置、端口占用、bean命名重复等各种原因,导致项目启动失败呢,比如端口占用的情况下启动项目,控制台会打印如下日志。原创 2023-07-17 11:07:41 · 602 阅读 · 0 评论 -
SpringBoot源码分析(5)--createApplicationContext创建应用上下文
二、ApplicationContext简述2.1、Spring IOC容器实现方式三、createApplicationContext/创建应用上下文3.1、DefaultResourceLoader3.2、AbstractApplicationContext3.3、GenericApplicationContext3.3.1、SimpleAliasRegistry3.3.2、DefaultSingletonBeanRegistry3.3.3、FactoryBeanRegistrySupp原创 2023-07-13 17:49:53 · 1109 阅读 · 0 评论 -
SpringBoot源码分析(4)--Environment(下)/配置文件加载原理
一、前言二、Spring Boot 配置优先级2.1、配置文件加载优先级总结2.2、如何加载外部配置文件三、springboot常见的配置参数3.1、命令行参数3.2、System Properties与System Environment的区别3.3、系统参数(System Properties)3.4、系统环境参数(System Environment)四、Environment读取配置属性4.1、传统方式获取environment配置4.2、SpringBoot2.X 引入更强原创 2023-07-12 09:40:14 · 892 阅读 · 0 评论 -
SpringBoot源码分析(3)--Environment简介/prepareEnvironment准备环境(万字图文源码debug分析)
一、前言二、Environment2.1、什么是 Environment?2.2、Environment组成2.2.1、profile数据结构2.2.2、properties数据结构三、prepareEnvironment3.1、获取或者创建环境getOrCreateEnvironment3.1.1、AbstractEnvironment3.1.2、StandardEnvironment3.1.3、StandardServletEnvironment3.2、配置环境configureE原创 2023-07-07 17:28:13 · 1200 阅读 · 0 评论 -
SpringBoot源码分析(2)--SpringBoot启动源码(万字图文源码debug讲解springboot启动原理)
、SpringApplication实例化及run()方法2.1、SpringApplication实例化2.1.1、 web应用判断2.1.2、设置初始化器2.1.3、设置监听器2.1.4、判断主应用入口类2.2、run()方法2.2.1、获取监听器集合getRunListeners(args)2.2.1.1、开启监听器2.2.2、准备Spring环境 prepareEnvironment()2.2.3、打印banner图2.2.4、创建Spring应用上下文createApplic原创 2023-07-04 13:55:48 · 733 阅读 · 0 评论 -
SpringBoot源码分析(1)--@SpringBootApplication注解使用和原理/SpringBoot的自动配置原理详解
前言主启动类的配置@SpringBootConfiguration注解验证启动类是否被注入到spring容器中@ComponentScan 注解@ComponentScan 注解解析与路径扫描@EnableAutoConfiguration注解问题解答1.@AutoConfigurationPackage和@ComponentScan的作用是否冲突起因回答2.为什么能实现自动加载原创 2023-06-25 09:44:35 · 1991 阅读 · 0 评论