SpringBoot 自动扫描第三方包及spring.factories失效的问题解决

 更新时间:2023年05月06日 15:56:06   作者:迷路的圆  
这篇文章主要介绍了SpringBoot 自动扫描第三方包及spring.factories失效的问题,本文给大家分享最新解决方法,需要的朋友可以参考下

为什么会找不到

Spring 依赖注入 就是要让spring找到要注入的类 并且识别到了 @Component、@Service 等注解。

1. 当在开发的第三方包里写明了 @Component、@Service 等等

2. 引入了包,不论第三方库的引入,还是本地jar。总之是要引入到工程的

这时候还加入不到 IOC 容器,那就说明SpringBoot工程没有扫描到这些类。

解决方法

1. componentScan 或者SpringBootApplication(scanBasePackages= )

@SpringBootApplication
@ComponentScan(basePackages = {"com.example.gradlespringbootdemo","com.example.gradlespringboottest"})
public class GradleSpringbootTestApplication {
    public static void main(String[] args) {
        SpringApplication.run(GradleSpringbootTestApplication.class, args);
    }

SpringBootApplication 是个三合一的注解,其中就包含了ComponentScan 。本身是要默认扫描范围的,手动加入ComponentScan后,默认就失效了。要手动加回来

2. 写自动配置类

这种方法的原理与上一个其实是一样的,实际作用还是在目标上加入了componentScan 的扫描注解

3. spring.factories文件

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
 com.example.gradlespringbootdemo.service.TestService\
 AbcClass\
 DefClass

当开发第三方包时,可以使用这种方法。这样使用这个包的springboot工程就可以自动扫描到了。其实就时springboot启动时会扫描依赖jar包下的这个路径的spring.factories文件。这个文件可以写很多配置,例如Listener等。

如上代码将需要被扫描的类都写进去。

spring.factories 失效

这是版本问题,新的版本不再支持spring.factories文件了。改为上图中一长串那样的写法 即 META-INF\spring\org.springframework.boot.autoconfigure.EnableAutoConfiguration.imports这样,就是把原来的配置单独形成文件,直接把要扫描的类写进这个文件就可以了,每行写一个,像这样

到此这篇关于SpringBoot 自动扫描第三方包及spring.factories失效的问题的文章就介绍到这了,更多相关SpringBoot 自动扫描第三方包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java数组队列及环形数组队列超详细讲解

    Java数组队列及环形数组队列超详细讲解

    队列是一个有序列表,可以用数组和链表来实现,队列有一个原则。即:先存入队列的数据要先取出,后存入的要后取出,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-09-09
  • 详解Spring Boot中MyBatis的使用方法

    详解Spring Boot中MyBatis的使用方法

    mybatis初期使用比较麻烦,需要各种配置文件、实体类、dao层映射关联、还有一大推其它配置。当然mybatis也发现了这种弊端。下面通过本文给大家详细介绍Spring Boot中MyBatis的使用方法,感兴趣的朋友一起看看吧
    2017-07-07
  • Spring bean为什么需要依赖注入

    Spring bean为什么需要依赖注入

    本篇文章主要介绍了Spring依赖注入的三种方式小结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-07-07
  • java实现大文件分割与合并的实例代码

    java实现大文件分割与合并的实例代码

    java实现大文件分割与合并的实例代码,需要的朋友可以参考一下
    2013-03-03
  • Maven工程搭建spring boot+spring mvc+JPA的示例

    Maven工程搭建spring boot+spring mvc+JPA的示例

    本篇文章主要介绍了Maven工程搭建spring boot+spring mvc+JPA的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • Java多线程中Lock锁的使用小结

    Java多线程中Lock锁的使用小结

    这篇文章主要介绍了Java多线程中Lock锁的使用小结,本节主要讲了它的基本使用,大家可以举一反三,试试什么条件下会导致死锁,需要的朋友可以参考下
    2022-06-06
  • Java web实现简单注册功能

    Java web实现简单注册功能

    这篇文章主要为大家详细介绍了Java web实现简单注册功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Java多线程之锁的强化学习

    Java多线程之锁的强化学习

    Java多线程的锁都是基于对象的,Java中的每一个对象都可以作为一个锁。这篇文章主要来通过一下示例为大家强化一下锁的相关知识的掌握,希望对大家有所帮助
    2023-02-02
  • 详解Java的Enum的使用与分析

    详解Java的Enum的使用与分析

    这篇文章主要介绍了详解Java的Enum的使用与分析的相关资料,需要的朋友可以参考下
    2017-02-02
  • Java稀疏数组的应用实践

    Java稀疏数组的应用实践

    本文主要介绍了Java稀疏数组的应用实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06

最新评论