@ComponentScan注解详细介绍和使用示例
@ComponentScan
注解是 Spring 框架中的一个注解,用于指定要扫描的包路径,从而自动注册和管理 Spring 组件。
具体来说,@ComponentScan
注解的作用主要有以下几个方面:
-
扫描组件:
@ComponentScan
注解会自动扫描指定包路径下的类,并将符合条件的类注册为 Spring 组件。这些组件可以是使用了@Component
及其派生注解(如@Service
、@Repository
、@Controller
)的类,也可以是通过@Bean
注解手动声明的 Bean。 -
自动装配:当其他类需要使用被
@ComponentScan
注解扫描的组件时,可以通过自动装配的方式将组件注入到目标类中。这通常通过@Autowired
或其他自动装配注解实现。 -
配置类扫描:
@ComponentScan
注解可以添加在配置类上,用于指定要扫描的基础包路径。这样能够让 Spring 容器自动扫描并注册配置类及其子包下的组件,简化了配置类的手动注册过程。 -
组件过滤:
@ComponentScan
注解支持通过excludeFilters
和includeFilters
属性进行组件过滤,可以根据自定义规则来排除或选取特定的组件进行注册。
1、示例用法如下:
1、com.tencent
@Configuration
@ComponentScan(basePackages = "com.tencent")
public class AppConfig {
// 配置类的其他内容...
}
以上示例中,通过在配置类上添加 @ComponentScan
注解,并指定了要扫描的基础包路径为 "com.tencent
",使得 Spring 容器可以自动扫描并注册该路径下所有包及其子包下
的所有组件。
2、com.tencent.*
@Configuration
@ComponentScan(basePackages = "com.tencent.*")
public class AppConfig {
// 配置类的其他内容...
}
以上示例中,通过在配置类上添加 @ComponentScan
注解,并指定了要扫描的基础包路径为 "com.tencent.*
",使得 Spring 容器可以自动扫描并注册com.tencent子包下
的所有类/组件,但不包含 com.tencent包下的类/组件
本文作者:Journey&Flower
本文链接:https://www.cnblogs.com/JourneyOfFlower/p/17664530.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步