@ComponentScan注解详细介绍和使用示例

@ComponentScan 注解是 Spring 框架中的一个注解,用于指定要扫描的包路径,从而自动注册和管理 Spring 组件。

具体来说,@ComponentScan 注解的作用主要有以下几个方面:

  1. 扫描组件:@ComponentScan 注解会自动扫描指定包路径下的类,并将符合条件的类注册为 Spring 组件。这些组件可以是使用了 @Component 及其派生注解(如 @Service@Repository@Controller)的类,也可以是通过 @Bean 注解手动声明的 Bean。

  2. 自动装配:当其他类需要使用被 @ComponentScan 注解扫描的组件时,可以通过自动装配的方式将组件注入到目标类中。这通常通过 @Autowired 或其他自动装配注解实现。

  3. 配置类扫描:@ComponentScan 注解可以添加在配置类上,用于指定要扫描的基础包路径。这样能够让 Spring 容器自动扫描并注册配置类及其子包下的组件,简化了配置类的手动注册过程。

  4. 组件过滤:@ComponentScan 注解支持通过 excludeFiltersincludeFilters 属性进行组件过滤,可以根据自定义规则来排除或选取特定的组件进行注册。

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包下的类/组件

posted @ 2023-08-29 13:36  Journey&Flower  阅读(83)  评论(0)    收藏  举报