java ee
应用的开源框架IoC
和AOP
IoC
即控制反转, 是一种设计思想, 他将java bean的生命周期交给容器管理, DI
是IoC
的实现
配置文件和依赖过多 ,开发者的精力被消耗在依赖管理和配置文件的维护, 降低了开发效率
Spring Boot是Spring的深度封装, 底层依然是Spring,他提供了Spring项目的起步依赖和自动配置, 让开发者将精力从繁琐的配置文件和依赖管理中抽离, 专注于项目的开发
首先我们查看spring boot的启动类
启动类上有一注解SpringBootApplication
, 表明该类是一个启动, 我们点进该注解可以发现
该注解是一系列元注解和SpringBootConfiguration
, EnableAutoConfiguration
, ComponentScan
的组合注解
其中SpringBootConfiguration
的作用与Configuration
的作用相同都是表明该类是一个配置类, ComponentScan
表明会扫描启动所在包及其子孙包的所有组件, 我们重点关注EnableAutoConfiguration
注解
进入EnableAutoConfiguration
可以看到
该类导入一个AutoCingurationImportSelector.class
文件, 该类会自动调用selectImports(AnnotationMetadata annotationMetadata)
方法,, 该方法就判断是否启用自动配置, 如果启用了自动配置, 则会调用AutoConfigurationEntry getAutoConfigurationEntry(AnnotationMetadata annotationMetadata)
方法, 该方法会调用getCandidateConfigurations(AnnotationMetadata metadata, AnnotationAttributes attributes)
方法, 该方法会读取
META-INF/spring/
下的 org.springframework.boot.autoconfigure.AutoConfiguration.imports
文件, 该文件中保存了需要自动配置的配置类的信息, spring回家这些配置类加载进内存
调用顺序:
org.springframework.boot.autoconfigure.AutoConfiguration.imports
文件部分信息如下:
注意如果spring boot是2.7.0之前的spring版本, 文件位置应是META-INF
目录下的spring.factoires
文件
目录如下所示:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。