SpringBoot3自动配置(持续更新)
自动配置
在SpringBoot中,自动配置是一个核心的特性,在我们将SpringBoot的starter添加到自己的项目时,SpringBoot会自动配置starter所需的核心组件,会自动配置一些Servlet和Filter等
默认包的扫描规则
@SpringBootApplication:这是SpringBoot的主程序的注解,它包含了@SpringBootConfiguration这是一个配置类,@EnableAutoConfiguration开启自动配置,@ComponentScan自动扫描
扫描路径:默认情况下,SpringBoot会扫描主程序类所在的包及其子包,我们也可以通过@SpringBootAppliation(scanBasePackages="")或@ComponentScan("")来指定扫描路径
自动配置的完整流程:
1.导入starter:比如spring-boot-starter-web,它导入了Web开发所需的所有依赖
2.引入autoconfigure包:spring-boot-starter引入spring-boot-autoconfigure包,此包包含了场景的自动配置类
3.自动配置生效:
- @EnableAutoConfiguration注解通过@Import(AutoConfigurationImportSelector.class)批量导入自动配置类。
- Spring Boot默认会加载一定数量的自动配置类(如142个),这些类通过META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件指定。自动配置类我们可以通过条件注解来控制,获取自己所需要的
总结:
- 导入starter,间接引入autoconfigure包。
- autoconfigure包中的文件指定了要加载的自动配置类。
- @EnableAutoConfiguration注解通过@Import批量导入这些自动配置类。
- 自动配置类根据条件注解按需加载,并向容器中添加组件。
- 组件的核心参数来自于与配置文件绑定的属性类。
原文地址:https://blog.csdn.net/Rangsh/article/details/142481361
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!