springboot 启动如何排除某些bean的注入

 更新时间:2021年08月02日 10:54:30   作者:糊涂小农  
这篇文章主要介绍了springboot 启动如何排除某些bean的注入方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

springboot 启动排除某些bean的注入

问题:

最近做项目的时候,需要引入其他的jar。然后还需要扫描这些jar里的某些bean。于是使用注解:@ComponentScan

这个注解直接指定包名就可以,它会去扫描这个包下所有的class,然后判断是否解析:

@ComponentScan(basePackages = {"your.pkg","other.pkg"})
public class Application {
} 

其他的jar中定义了 redissonConfig 这个bean。然后我自己的项目也定义了redissonConfig 这个bean。导致项目启动报错。所以使用如下方式,排除jar 中的RedissonConfig.class。

@ComponentScan(basePackages = {"com.xx.xx.*"}, excludeFilters =@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {RedissonConfig.class}))

@ComponentScan注解

扫描或解析的bean只能是Spring内部所定义的,比如@Component、@Service、@Controller或@Repository。如果有一些自定义的注解,比如@Consumer、这个注解修饰的类是不会被扫描到的。这个时候我们就得自定义扫描器完成这个操作。

配置文件中使用的:

component-scan标签底层使用ClassPathBeanDefinitionScanner这个类完成扫描工作的。@ComponentScan注解配合@Configuration注解使用,底层使用ComponentScanAnnotationParser解析器完成解析工作。

springboot排除扫描包

@SpringBootApplication
@ComponentScan(excludeFilters = 
 {
   @ComponentScan.Filter(type = FilterType.REGEX,pattern = "com.action.other.*") 
 })
public class Application {
 
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

根据FilterType不同有不同的过滤方式,这里是根据正则过滤

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

相关文章

  • java idea如何根据请求路径url自动找到对应controller方法插件

    java idea如何根据请求路径url自动找到对应controller方法插件

    这篇文章主要介绍了java idea如何根据请求路径url自动找到对应controller方法插件,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Intellij IDEA集成JProfiler性能分析工具

    Intellij IDEA集成JProfiler性能分析工具

    作为Java程序员,性能分析是我们必须掌握的技能之一,在性能分析中,JProfiler是一款非常强大的工具,本文就来介绍一下Intellij IDEA集成JProfiler性能分析工具,就有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • Java解压zip文件完整代码分享

    Java解压zip文件完整代码分享

    这篇文章主要介绍了Java解压zip文件完整代码分享,向大家分享了两部分代码示例,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • Java for循环标签跳转到指定位置的示例详解

    Java for循环标签跳转到指定位置的示例详解

    这篇文章主要介绍了Java for循环标签跳转到指定位置,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • Java方法签名为何不包含返回值类型

    Java方法签名为何不包含返回值类型

    这篇文章主要介绍了Java方法签名为何不包含返回值类型,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Java编程GUI中的事件绑定代码示例

    Java编程GUI中的事件绑定代码示例

    这篇文章主要介绍了Java编程GUI中的事件绑定代码示例,简单介绍了绑定的概念,然后分享了相关代码,具有一定参考价值,需要的朋友可以参考下。
    2017-10-10
  • Java使用WeakHashMap实现缓存自动清理

    Java使用WeakHashMap实现缓存自动清理

    在 Java 中,内存管理是一个重要的话题,尤其是在涉及到缓存的实现时,如果缓存项不再被使用,我们希望它们能被自动清理,而不必手动删除,WeakHashMap 就是 Java 提供的一种用于缓存和内存管理的工具,本文将深入探讨如何利用 WeakHashMap 来实现缓存自动清理
    2025-01-01
  • JVM的垃圾回收算法工作原理详解

    JVM的垃圾回收算法工作原理详解

    这篇文章主要介绍了JVM的垃圾回收算如何判断对象是否可以被回收,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下
    2019-06-06
  • Java将网络图片转成输入流以及将url转成InputStream问题

    Java将网络图片转成输入流以及将url转成InputStream问题

    这篇文章主要介绍了Java将网络图片转成输入流以及将url转成InputStream问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • Deepseek整合SpringAI详细流程

    Deepseek整合SpringAI详细流程

    本文介绍了如何使用SpringBoot、Deepseek和SpringAI构建一个简单的问答系统,并通过Postman调用API接口实现问答功能,通过本文,你将学习如何整合这些技术,快速实现一个高效的问答系统,感兴趣的朋友一起看看吧
    2025-02-02

最新评论