📅  最后修改于: 2023-12-03 15:13:11.617000             🧑  作者: Mango
在我们的Spring应用程序中,我们需要扫描并自动装配所有程序组件以便能够使用它们。这个任务可以通过使用Spring的 @ComponentScan 注释轻松地完成。
@ComponentScan 注释是Spring框架中很重要的注释。它用于扫描指定的基本包(base package),并且把所有标记为 @Component、@Service、@Controller、@Repository或自定义注释的类装配到Spring容器中。
以下是一个简单的 @ComponentScan 示例:
@Configuration
@ComponentScan(basePackages = "com.example")
public class AppConfig {
// ...
}
这将在指定包(com.example)下扫描所有 @Component 和其他相关注释,例如@Service、@Controller、@Repository等,并将它们装配到Spring容器中。
@ComponentScan注释还有其他可选参数可以使用,可以参考以下示例:
@Configuration
@ComponentScan(basePackages = "com.example",
includeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = MyClass.class),
excludeFilters = @ComponentScan.Filter(type = FilterType.REGEX, pattern = ".*Test"),
useDefaultFilters = false)
public class AppConfig {
// ...
}
basePackages
- 指定要扫描的包名称。多个包可以使用逗号分隔。includeFilters
- 这个参数可以过滤掉不需要扫描的类或接口。excludeFilters
- 这个参数将把你想要排除在外的类或接口筛选出来。useDefaultFilters
- 这个参数将开启过滤器特性。默认情况下为 true。@ComponentScan 注释的详细用法可以在 Spring 公司的官方文档中查看。
参考文献: