@ComponentScan 和 @SpringBootApplication
@ComponentScan
@ComponentScan 注解是一个 Spring 的注解,用于扫描包上的注解将组件加载到IOC容器中。可以扫描的注解:@Controller、@Service、@Repository、@Component、@Configuration 等。
@ComponentScan 注解只能使用在有 @Configuration 配置注解的地方,并不局限与一定是 @Configuration 也可以是@SpringBootApplication, @SpringBootConfiguration 等(因为这两个注解里面包含了 @Configuration)。
@SpringBootApplication
查看源码可知,@SpringBootApplication 中包含 @EnableAutoConfiguration, @ComponentScan, @Configuration 注解。
示例:
@SpringBootApplication(scanBasePackages="com.test.chapter4")
这个 scanBasePackages 其实就是@ComponentScan中的 basePackages。
如果没有指定 scanBasePackages,@SpringBootApplication 默认会扫描 @SpringBootApplication 注解标记类的包(一般就是XxxApplication这个类)下及其子包的类的注解。