Springboot主程序类注解配置过程图解
@SpringBootApplication
点进这个注解看

进去第一个注解@SpringBootConfiguration看,上面有Configuration注解

@Configuration 这是Spring的配置类注解, 说明这个类一个配置类,里面都是配置文件
进第二个注解@EnableAutoConfiguration, 顾名思义,这是允许自动配置生效的注解, 接下来进去看它。
@EnableAutoConfiguration

进去后也有两个注解:第一个AutoConfigurationPackage,进去看
里面有这个注解,@Import({Registrar.class}) @Import是spring的底层注解,作用是给Spring导入一个Registrar组件
进去看Registrar


将主配置类所在的包以及以下的包里的所有组件,扫描到Spring容器中。
第二个@Import({AutoConfigurationImportSelector.class})
进AutoConfigurationImportSelector里看,


这个configurations数组是我们需要导入的组件。看看configurations有什么,
实际上是将所有需要导入的组件以类全名的方式返回,这些组件会导入到容器中

能看到是从META-INF/spring.factories里获取EnableAutoConfiguration指定的值,将这些值作为自动配置类导入到容器中,自动配置类就生效,帮我们完成自动配置工作:

看看spring.factories里有什么,有非常多的自动配置类 XXXAutoCOnfiguration(这里就不进去看了),@Import({AutoConfigurationImportSelector.class})就是给容器中导入这个场景需要的所有组件并且配置好

注意spring-boot-autoconfigure.jar包。这里面有所有自动配置的组件



阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




