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


Posted in Java/Android onAugust 02, 2021

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/Android 相关文章推荐
深入理解以DEBUG方式线程的底层运行原理
Jun 21 Java/Android
总结一下关于在Java8中使用stream流踩过的一些坑
Jun 24 Java/Android
JVM钩子函数的使用场景详解
Aug 23 Java/Android
Java使用JMeter进行高并发测试
Nov 23 Java/Android
Android自定义scrollview实现回弹效果
Apr 01 Java/Android
Java 数据结构七大排序使用分析
Apr 02 Java/Android
Spring Boot项目传参校验的最佳实践指南
Apr 05 Java/Android
Android Flutter实现3D动画效果示例详解
Apr 07 Java/Android
Java 关于String字符串原理上的问题
Apr 07 Java/Android
Java实现扫雷游戏详细代码讲解
May 25 Java/Android
Java实现带图形界面的聊天程序
Jun 10 Java/Android
Springboot集成kafka高级应用实战分享
Aug 14 Java/Android
idea 在springboot中使用lombok插件的方法
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
Jul 26 #Java/Android
Sleuth+logback 设置traceid 及自定义信息方式
Jul 26 #Java/Android
Java日常练习题,每天进步一点点(38)
Jul 26 #Java/Android
dubbo集成zipkin获取Traceid的实现
Jul 26 #Java/Android
dubbo服务整合zipkin详解
spring boot中nativeQuery的用法
Jul 26 #Java/Android
You might like
php定时计划任务的实现方法详解
2013/06/06 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
2013/06/17 PHP
php 判断过去离现在几年的函数(实例代码)
2016/11/15 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
Laravel使用原生sql语句并调用的方法
2019/10/09 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
2019/12/31 PHP
javascript跟随滚动效果插件代码(javascript Follow Plugin)
2013/08/03 Javascript
js利用事件的阻止冒泡实现点击空白模态框的隐藏
2014/01/24 Javascript
纯JS实现根据CSS的class选择DOM
2014/03/22 Javascript
JavaScript中的原型prototype属性使用详解
2015/06/05 Javascript
js微信支付实现代码
2016/12/22 Javascript
js运算符的一些特殊用法
2018/07/29 Javascript
详解es6新增数组方法简便了哪些操作
2019/05/09 Javascript
VUE 组件转换为微信小程序组件的方法
2019/11/06 Javascript
nuxt 实现在其它js文件中使用store的方式
2020/11/05 Javascript
[01:13:51]TNC vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Flask SQLAlchemy一对一,一对多的使用方法实践
2013/02/10 Python
python打开网页和暂停实例
2014/09/30 Python
python根据开头和结尾字符串获取中间字符串的方法
2015/03/26 Python
Django model反向关联名称的方法
2018/12/15 Python
Pyqt5 基本界面组件之inputDialog的使用
2019/06/25 Python
python nmap实现端口扫描器教程
2020/05/28 Python
PyQt5多线程防卡死和多窗口用法的实现
2020/09/15 Python
python3列表删除大量重复元素remove()方法的问题详解
2021/01/04 Python
一款基于css3的动画按钮代码教程
2014/11/23 HTML / CSS
欧舒丹英国官网:购买欧舒丹护手霜等明星产品
2017/01/17 全球购物
德国旅游网站:weg.de
2018/06/03 全球购物
优秀民警事迹材料
2014/01/29 职场文书
房屋租赁协议书范本
2014/04/10 职场文书
英语自我介绍演讲稿
2014/09/01 职场文书
房地产经营管理专业自荐信
2014/09/02 职场文书
离婚协议书怎么写(范本参考)
2014/09/30 职场文书
2016优秀大学生个人事迹材料范文
2016/03/01 职场文书
2019思想汇报范文
2019/05/21 职场文书
pandas中DataFrame检测重复值的实现
2021/05/26 Python
python中的plt.cm.Paired用法说明
2021/05/31 Python