Spring中@ComponentScan和@ComponentScans注解用法

        在 Spring Framework 中,@ComponentScan 和 @ComponentScans 是两个非常重要的注解,它们用于自动扫描并加载 Spring 组件。在使用 Spring Boot 的时候,我们经常会看到 @SpringBootApplication 注解,这个注解实际上就包含了 @ComponentScan。

首先,我们来看一下 @ComponentScan 的基本用法。

@ComponentScan 注解用于指定要扫描的包及其子包。当 Spring 应用启动时,它会扫描这些包,并查找 @Component、@Controller、@Service、@Repository 等注解的类,然后自动注册这些类为 Spring Bean。

如下示例:

@Configuration  

@ComponentScan(basePackages = {"com.example.myapp"})  

public class AppConfig {  

}

在这个例子中,Spring 会扫描 com.example.myapp 包及其子包,并自动注册所有的 Spring 组件。

@ComponentScans 注解是 @ComponentScan 的复数形式,它允许你指定多个要扫描的包。这在你需要拆分扫描多个包时非常有用。

如下示例:

@Configuration  

@ComponentScans({  

    @ComponentScan(basePackages = {"com.example.myapp"}),  

    @ComponentScan(basePackages = {"com.example.myotherapp"})  

})  

public class AppConfig {  

}

在这个例子中,Spring 会扫描 com.example.myapp 和 com.example.myotherapp 这两个包及其子包,并自动注册所有的 Spring 组件。

除了基本的包扫描外,你还可以使用 @ComponentScan 的 excludeFilters 和 includeFilters 属性来自定义扫描的过滤条件。例如,你可以排除某些特定的类或者接口。

如下示例:

@Configuration  

@ComponentScan(basePackages = {"com.example.myapp"},  

    excludeFilters = @Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {MyExcludedClass.class}))  

public class AppConfig {  

}

在这个例子中,Spring 会扫描 com.example.myapp 包及其子包,但是会排除所有 MyExcludedClass 类的子类或实现类。

        在使用 Spring Framework 进行开发时,@ComponentScan 和 @ComponentScans 是两个非常重要的注解。它们可以帮助你自动扫描和加载 Spring 组件,从而提高开发效率并减少出错的可能性。记住,你也可以使用这些注解的过滤功能来排除某些不需要自动注册的类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hamilton_Huan

原创不易,结合业务原创更不易

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值