要想了解Spring Boot自动配置的原理就要先了解spring Boot 的几个底层注解
@Import 是 Spring 基于 Java 注解配置的主要组成部分。 @Import 注解提供了 @Bean 注解的功能,同时还有原来 Spring 基于 xml 配置文件里的 <import> 标签组织多个分散的xml文件的功能,当然在这里是组织多个分散的 @Configuration 的类。
用法1:在类上添加注解@import,写法如下
@Import({Student.class})
?意思为已经自动注入了Student类,可以直接使用
用法2:实现了ImportSelector接口的类(最常用的方式)
Spring Boot的自动装配原理就用到了这种方式,会将一部分类批量注入到容器中
用法3:实现了ImportBeanDefinitionRegistrar接口的类
这种方式是通过实现ImportBeanDefinitionRegistrar
将要注入的类添加到BeanDefinition
注册中心,这样Spring 后续会根据bean定义信息将类注入到容器中。
该注解是一类注解,通常指以Enable开头
@EnableRetry
:开启?Spring
?的重试功能;
@EnableScheduling
:开启?Spring
?的定时功能;
@EnableAsync
:开启?Spring
?的异步功能;
@EnableAutoConfiguration
:开启?Spring
?的自动装配功能;
?一般像如上累似的@EnableXXX注解是通过@Import实现具体的功能(@EnableXXX注解上加个@Import注解),所以可以说Enable注解其实就是靠import来实现的
该类注解的作用就是在满足某个条件的时候才将某个类进行实例化并加入到Spring容器中来。
@Condition跟@Enable一样也是一类注解
@Conditional 可以使用在类上或者方法上。具体使用方式如下:
在标注或元标注了 @Component 组件的类上进行标注。
作为元注解直接标注在其他注解上面。
在标注了 @Bean 注解的方法上标注。
?