1. @SpringBootApplication与@ComponentScan的关系
@SpringBootApplication = @Configuration + @EnableAutoConfiguration + @ComponentScan。
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {...}
/*
@Configuration用于配置Spring容器,即JavaConfig形式的Spring IoC容器的配置类所使用。
@SpringBootConfiguration来源于@Configuration,二者功能都是将当前类标注为配置类,并将当前类里以 @Bean 注解标记的方法的实例注入到srping容器中,实例名即为方法名。
@EnableAutoConfiguration注解启用自动配置,帮助 SpringBoot 应用将所有符