SpringBoot源码解析之注解

本文的代码基于1.5.9版本
启动类中都需要添加 @SpringBootApplication 注解,该注解中包含了个重要注解:

1、@SpringBootConfiguration

标记为springBoot应用,在这个注解中又有@Configuration表示是个注解配置。
SpringBootConfiguration

2、@EnableAutoConfiguration

EnableAutoConfiguration
该注解中又包含@AutoConfigurationPackage 与@Import(EnableAutoConfigurationImportSelector.class)。

2.1@AutoConfigurationPackage
表示包含这个注解的bean都会注册进spring容器。
该注解中又有@Import(AutoConfigurationPackages.Registrar.class):
这个注解的作用是注册AutoConfigurationPackages的bean信息。

另外,import注解中可以添加 Configuration, ImportSelector, ImportBeanDefinitionRegistrar 实现了这几个接口的类。

2.2@Import(EnableAutoConfigurationImportSelector.class)
设置自动配置选择器

EnableAutoConfigurationImportSelector
isEnabled方法重写了父类的方法,这个的作用是判断 spring.boot.enableautoconfiguration 有没有配置布尔值,有的话启动springboot的自动配置。
如果如下配置,springboot无法启动,需要自定义配置类

spring.boot.enableautoconfiguration=false

取消自动配置


版权声明:本文为fany000原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。