@ComponentScan 和 @SpringBootApplication

发布时间 2023-04-12 13:18:12作者: 拾月凄辰

@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这个类)下及其子包的类的注解。