系列文章目录
文章目录
一丶如何开启自动配置
其实我们开启自动注解主要是通过注解实现
@EnableAutoConfiguration
这里@SpringBootApplication注解中
二 自动配置实现原理
其实主要还是通过注解的实现.主要是2个 1个通过@EnableAutoConfiguration和@Conditional 2个注解实现
- @EnableAutoConfiguration 主要是加载定义的一些类
- @Conditional 根据这些在容易中加载需要的类
@EnableAutoConfiguration的作用
首先我们看下这个注解的内容
@Target({
ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import({
AutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {
String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration";
Class<?>[] exclude() default {
};
String[] excludeName() default {
};
}
我们可以看到注解@Import这里的方法预加载了一些类和方法
public class AutoConfigurationImportSelector implements DeferredImportSelector, BeanClassLoaderAware, ResourceLoaderAware, BeanFactoryAware, EnvironmentAware, Ordered {
private static final AutoConfigurationImportSelector.AutoConfigurationEntry EMPTY_ENTRY = new AutoConfigurationImportSelector.AutoConfigurationEntry();
//加载的入口在这个方法中.
protected AutoConfigurationImportSelector.AutoConfigurationEntry getAutoConfigurationEntry(AutoConfigurationMetadata autoConfigurationMetadata, AnnotationMetadata annotationMetadata)