通过查看SpringBoot启动类来查看SpringBoot自动加载的原理:
@SpringBootApplication注解
点击这个注解
里面有这样3个注解
@SpringBootConfiguration(重要)
@EnableAutoConfiguration(重要)
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
@ComponentScan
其中@ComponentScan是组件扫描器注解,他会自动扫描并加载符合条件的组件或Bean,并将这个Bean加载到IoC容器中,这个注解对应Spring中xml配置文件中的元素,有了它就会有相应的Bean,和spring的xml文件中添加Bean一样。
@SpringBootConfigration
而@SpringBootConfigration这个注解则表明这个类是一个SpringBoot配置类,点击这个注解,发现其下有一个 @Configration 说明这是一个Spring配置类,配置类就对应Spring中的xml配置文件,在配置类中可以进行相应的配置,和在spring的xml文件中进行相应的配置一样 @Configration下有一个@Component注解,表明配置类就是一个Spring中的组件,这里也说明启动类也只是Spring中的一个组件罢了,用来启动应用
@EnableAutoConfigration
从这个注解的名字我们就知道他与自动配置有关
他会告诉SpringBoot开启自动配置功能,这样自动配置才会生效
其下有两个重要注解
@AutoConfigrationPackage
@Import(AutoConfigrationImportSelector.class)
&#