📜  @componentScan 将在哪里查看 (1)

📅  最后修改于: 2023-12-03 15:13:11.617000             🧑  作者: Mango

@ComponentScan - 扫描和自动装配组件

在我们的Spring应用程序中,我们需要扫描并自动装配所有程序组件以便能够使用它们。这个任务可以通过使用Spring的 @ComponentScan 注释轻松地完成。

@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 公司的官方文档中查看。


参考文献:

Spring Framework - 基于注释的组件扫描