SpringBoot源码解析之注解

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

1、@SpringBootConfiguration

标记为springBoot应用,在这个注解中又有@Configuration表示是个注解配置。
SpringBoot源码解析之注解_第1张图片

2、@EnableAutoConfiguration

SpringBoot源码解析之注解_第2张图片
该注解中又包含@AutoConfigurationPackage 与@Import(EnableAutoConfigurationImportSelector.class)。

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

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

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

SpringBoot源码解析之注解_第3张图片
isEnabled方法重写了父类的方法,这个的作用是判断 spring.boot.enableautoconfiguration 有没有配置布尔值,有的话启动springboot的自动配置。
如果如下配置,springboot无法启动,需要自定义配置类

spring.boot.enableautoconfiguration=false

SpringBoot源码解析之注解_第4张图片

你可能感兴趣的:(springboot)