spring boot 核心清单
2021-02-02 16:56:29 3 举报
AI智能生成
spring boot 核心清单
作者其他创作
大纲/内容
Spring Boot设计初衷
快速的启动Spring应用
Spring Boot应用的本质是基于Spring框架的应用,Spring对“约定优先于配置”理念的最佳实践产物
Spring Boot核心
自动配置
起步依赖
Actuator
命令行界面(CLI)
Spring 基础知识
Spring IOC容器
Bean注册&管理
BeanDefinition
容器中的每一个 bean 都会有一个对应的 BeanDefinition 实例,
该实例负责保存bean对象的所有必要信息,
包括 bean 对象的 class 类型、是否是抽象类、构造方法和参数、其它属性等等
该实例负责保存bean对象的所有必要信息,
包括 bean 对象的 class 类型、是否是抽象类、构造方法和参数、其它属性等等
BeanDefinitionRegistry
BeanFactory
工作流程
第一阶段:容器启动时,会通过某种途径加载 ConfigurationMetaData
这个阶段主要完成一些准备性工作,更侧重于 bean 对象管理信息的收集,
当然一些验证性或者辅助性的工作也在这一阶段完成。
当然一些验证性或者辅助性的工作也在这一阶段完成。
第二阶段:容器会首先检查所请求的对象之前是否已经实例化完成。如果没有,则会根据注册的 BeanDefinition 所提供的信息实例化被请求对象,并为其注入依赖。当该对象装配完毕后,容器会立即将其返回给请求方法使用。
Spring容器的扩展机制
IoC 容器负责管理容器中所有bean的生命周期,而在 bean 生命周期的不同阶段,Spring 提供了不同的扩展点来改变 bean 的命运。
在容器的启动阶段, BeanFactoryPostProcessor允许我们在容器实例化相应对象之前,对注册到容器的 BeanDefinition 所保存的信息做一些额外的操作,比如修改 bean 定义的某些属性或者增加其他信息等
在容器的启动阶段, BeanFactoryPostProcessor允许我们在容器实例化相应对象之前,对注册到容器的 BeanDefinition 所保存的信息做一些额外的操作,比如修改 bean 定义的某些属性或者增加其他信息等
JavaConfig
它基于Java代码和Annotation注解来描述bean之间的依赖绑定关系
Annotation注解
@ComponentScan
表示启用组件扫描,Spring会自动扫描所有通过注解配置的bean,然后将其注册到IOC容器中
@Import
@Import注解用于导入配置类
在4.2之前, @Import注解只支持导入配置类,
但是在4.2之后,它支持导入普通类,并将这个类作为一个bean的定义注册到IOC容器中
但是在4.2之后,它支持导入普通类,并将这个类作为一个bean的定义注册到IOC容器中
@Conditional
@Conditional注解表示在满足某种条件后才初始化一个bean或者启用某些配置。
它一般用在由 @Component、 @Service、 @Configuration等注解标识的类上面,或者由 @Bean标记的方法上。
如果一个 @Configuration类标记了 @Conditional,则该类中所有标识了 @Bean的方法和 @Import注解导入的相关类将遵从这些条件。
如果一个 @Configuration类标记了 @Conditional,则该类中所有标识了 @Bean的方法和 @Import注解导入的相关类将遵从这些条件。
@ConfigurationProperties与@EnableConfigurationProperties
相对于@Value提供了更优雅的方式
@EnableConfigurationProperties注解表示对 @ConfigurationProperties的内嵌支持,
默认会将对应Properties Class作为bean注入的IOC容器中,即在相应的Properties类上不用加 @Component注解
默认会将对应Properties Class作为bean注入的IOC容器中,即在相应的Properties类上不用加 @Component注解
削铁如泥:SpringFactoriesLoader详解
JVM类加载器(3种)
BootstrapClassLoader
加载Java核心类库
ExtClassLoader
加载Java扩展类库
AppClassLoader
加载应用的类路径(CLASSPATH)下的类库
双亲委派模型
Spring容器事件监听机制
什么是事件监听机制?(what)
事件监听机制多用于图形界面变成,比如,点击按钮,在文本框输入内容等操作称为事件
而当事件触发时,应用程序作出一定的响应。表示应用监听这个事件
而当事件触发时,应用程序作出一定的响应。表示应用监听这个事件
Java提供实现事件监听机制的两个基础类
自定义事件类型(java.util.EventObject)
事件的监听器(java.util.EventListener)
Spring容器内的事件监听机制
ApplicationContext容器内部中的所有事件类型均继承自 org.springframework.context.AppliationEvent
容器中的所有监听器都实现 org.springframework.context.ApplicationListener接口
自动配置原理
属性值自动装配:@ConfigurationProperties 与 @EnableConfigurationProperties 原理
@Conditional注解实现原理
@ConditonalOnMissBean等扩展注解实现
*AutoConfiguration实现原理
DataSourceAutoConfiguration
如何实现快速自动装配实现
可以参考Mybatis-Spring-Boot-Starter与Druid-Spring-Boot-Starter等
启动引导
SpringApplication初始化
Spring Boot 启动流程
0 条评论
下一页