SpringBoot @ComponentScan扫描的局限性方式

 更新时间:2025年01月24日 08:37:05   作者:boonya  
文章总结:SpringBoot的@ComponentScan注解在扫描组件时存在局限性,只能扫描指定的包及其子包,无法扫描@SpringBootApplication注解自动配置的组件,使用@SpringBootApplication注解可以解决这一问题,它集成了@Configuration、@EnableAutoConfiguration

SpringBoot @ComponentScan扫描的局限性

使用@ComponentScan注解时,Spring只注入设置的类或者包及包的子集对象。

这会导致原来@SpringBootApplication 自动配置装配的功能在对象注入的时候不会注入当前工程。

@ComponentScan

扫描依赖注入模块服务 [注意本项目的扫描@ComponentScan必须手动加入当前项目的包扫描路径]

package com.patrol.mobile;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
 
/**
 * 开启异步请求
 */
@EnableAsync
/**
 * 开启接口缓存
 */
@EnableCaching
/**
 * 开启定时任务调度
 */
@EnableScheduling
/**
 * 开启接口文档描述
 */
@EnableSwagger2
/**
 * 扫描依赖注入模块服务[注意本项目的扫描@ComponentScan必须手动加入当前项目的包扫描路径]
 */
@ComponentScan(basePackages = {"com.patrol.config", "com.patrol.web", "com.patrol.position.service", "com.patrol.mobile"})
/**
 * @SpringBootApplication 相当于@Configuration,@EnableAutoConfiguration和 @ComponentScan 并具有他们的默认属性值
 */
@SpringBootApplication
public class PatrolMobileServiceApplication {
 
    public static void main(String[] args) {
        SpringApplication.run(PatrolMobileServiceApplication.class, args);
    }
 
}

@ComponentScan的局限性很明显,只扫描配置的这些包或者类。

使用@SpringbootApplication注解

可以解决根类或者配置类(我自己的说法,就是main所在类)头上注解过多的问题,一个@SpringbootApplication相当于@Configuration,@EnableAutoConfiguration 和 @ComponentScan 并具有他们的默认属性值。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • mybatis多条件in查询的实现

    mybatis多条件in查询的实现

    使用MyBatis-Plus的Lambda方法进行查询时,遇到多条件IN查询的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2026-04-04
  • 在CentOS系统中检测Java安装及运行jar应用的方法

    在CentOS系统中检测Java安装及运行jar应用的方法

    这篇文章主要介绍了在CentOS系统中检测Java安装及运行jar应用的方法,同样适用于Fedora等其他RedHat系的Linux系统,需要的朋友可以参考下
    2015-06-06
  • springboot项目中jacoco服务端部署使用

    springboot项目中jacoco服务端部署使用

    这篇文章主要为大家介绍了springboot项目中jacoco服务端部署使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • 关于Java Guava ImmutableMap不可变集合源码分析

    关于Java Guava ImmutableMap不可变集合源码分析

    这篇文章主要介绍Java Guava不可变集合ImmutableMap的源码分析的相关资料,需要的朋友可以参考下面具体的文章内容
    2021-09-09
  • Java实现abc字符串排列组合

    Java实现abc字符串排列组合

    这篇文章主要为大家详细介绍了JAVA实现abc字符串的排列组合,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • Spring Boot 控制层之参数传递方法详解

    Spring Boot 控制层之参数传递方法详解

    这篇文章主要介绍了Spring Boot 控制层之参数传递方法详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Spring Boot的Maven插件Spring Boot Maven plugin详解

    Spring Boot的Maven插件Spring Boot Maven plu

    Spring Boot的Maven插件Spring Boot Maven plugin以Maven的方式提供Spring Boot支持,Spring Boot Maven plugin将Spring Boot应用打包为可执行的jar或war文件,然后以通常的方式运行Spring Boot应用,本文介绍Spring Boot的Maven插件Spring Boot Maven plugin,一起看看吧
    2024-01-01
  • IDEA如何将Java项目打包成可执行的Jar包

    IDEA如何将Java项目打包成可执行的Jar包

    在Java开发中,我们通常会将我们的项目打包成可执行的Jar包,以便于在其他环境中部署和运行,本文将介绍如何使用IDEA集成开发环境将Java项目打包成可执行的Jar包,感兴趣的朋友一起看看吧
    2023-07-07
  • java中如何实现对类的对象进行排序

    java中如何实现对类的对象进行排序

    在本篇文章里小编给各位整理一篇关于java中如何实现对类的对象进行排序知识点内容,有兴趣的朋友们可以学习下。
    2020-02-02
  • Java递归算法详解(动力节点整理)

    Java递归算法详解(动力节点整理)

    Java递归算法是基于Java语言实现的递归算法。递归算法对解决一大类问题很有效,它可以使算法简洁和易于理解。接下来通过本文给大家介绍Java递归算法相关知识,感兴趣的朋友一起学习吧
    2017-03-03

最新评论