springboot什么时候需要用到@componentScan注解呢?

首先springboot注解的名称的命名都是见名知意的,component是组件的意思,scan是扫描的意思,合起来就是组件扫描。也就是将组件进行扫描,然后放到spring容器中进行管理。

那什么时候需要用到呢?

当项目启动的时候呢,springboot会自动扫描springbootApplication启动所在的目录及其子目录下的bean组件到spring容器里面进行管理,当我们需要用到的时候,就可以直接通过注入的方式获取bean对象。比如@Autowired @ Qualifier @Resource ,但是如果不在这个指定的目录前提下,你要直接使用@Autowired @ Qualifier @Resource这些注解注入bean对象的话,或者使用@Component、@Bean、@Service、@Mapper这些注解交给spring容器的话,都是不行的。

所以在这个情况下就必须加上@ComponentScan注解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
是的,Spring Boot 中是可以有多个 `@ComponentScan` 注解的。在 Spring Boot 应用程序中,通常会将 `@SpringBootApplication` 注解添加到主类上,该注解包含了 `@ComponentScan` 注解。而在实际开发中,我们有时需要在不同的包中定义不同的组件,因此需要在不同的包中使用 `@ComponentScan` 注解。 在使用多个 `@ComponentScan` 注解时,需要注意以下几点: 1. `@ComponentScan` 注解可以添加到不同的类上,但是不能重复扫描同一个包,否则可能会导致应用程序出现异常。 2. 如果多个 `@ComponentScan` 注解同时存在,不同的注解可能会使用不同的扫描条件,因此需要确保扫描条件不会出现冲突。 3. 可以使用 `basePackageClasses` 属性来指定要扫描的类所在的包,这样可以更加准确地控制扫描的范围。 下面是一个使用多个 `@ComponentScan` 注解的示例代码: ```java @SpringBootApplication @ComponentScan(basePackageClasses = {com.example.package1.Class1.class, com.example.package2.Class2.class}) @ComponentScan("com.example.package3") public class MyApplication { public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } } ``` 在上面的示例代码中,我们在主类上同时添加了两个 `@ComponentScan` 注解,其中一个使用了 `basePackageClasses` 属性指定了要扫描的类所在的包,另一个则直接指定了要扫描的包路径。这样可以确保应用程序能够正确扫描到所有需要的组件。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值