《深入探究 @SpringBootApplication 注解的内部原理》
@SpringBootApplication
注解涵盖了 Spring Boot 的包扫描原理、自动装配原理等众多重要原理。接下来,我们将对该注解展开深入且详尽的研究。而研究上述原理的关键,在于剖析@SpringBootApplication
内部的构成结构,如下图:
下面对@SpringBootConfiguration和@EnableAutoConfiguration进行详解。
一、@SpringBootConfiguration注解
内部结构:
@Configuration是Spring的一个注解,其修饰的类会加入Spring容器。这就说明SpringBoot的启动类会加入Spring容器。
进入内部:
该注解会被注入到IOC容器中
二、@EnableAutoConfiguration注解
内部结构:
@AutoConfigurationPackage注解:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@Import(AutoConfigurationPackages.Registrar.class)
public @interface AutoConfigurationPackage {
}
其内部@Import进来的类AutoConfigurationPackages.Registrar类:
源码如下:
static class Registrar implements ImportBeanDefinitionRegistrar, DeterminableImports {
@Override
public void registerBeanDefinitions(AnnotationMetadata metadata, BeanDefinitionRegistry registry)