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 相关文章推荐
Java中PriorityQueue实现最小堆和最大堆的用法
Jun 27 Java/Android
SpringBoot 拦截器妙用你真的了解吗
Jul 01 Java/Android
Java SSM配置文件案例详解
Aug 30 Java/Android
解析mybatis-plus中的resultMap简单使用
Nov 23 Java/Android
你知道Java Spring的两种事务吗
Mar 16 Java/Android
Java中的随机数Random
Mar 17 Java/Android
关于Mybatis中SQL节点的深入解析
Mar 19 Java/Android
spring注解 @PropertySource配置数据源全流程
Mar 25 Java/Android
Java实战之课程信息管理系统的实现
Apr 01 Java/Android
带你了解Java中的ForkJoin
Apr 28 Java/Android
Spring boot实现上传文件到本地服务器
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中include()与require()的区别说明
2010/03/10 PHP
php表单转换textarea换行符的方法
2010/09/10 PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
2011/06/02 PHP
PHP实现XML与数据格式进行转换类实例
2015/07/29 PHP
PHP页面跳转实现延时跳转的方法
2016/12/10 PHP
javascript 屏蔽鼠标键盘的几段代码
2008/01/02 Javascript
获取网站跟路径的javascript代码(站点及虚拟目录)
2009/10/20 Javascript
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
2012/08/14 Javascript
jQuery实现动画效果的实例代码
2013/05/07 Javascript
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
使用 Node.js 做 Function Test实现方法
2013/10/25 Javascript
ajax请求get与post的区别总结
2013/11/04 Javascript
node.js中的console用法总结
2014/12/15 Javascript
微信小程序 wx.request(OBJECT)发起请求详解
2016/10/13 Javascript
分享vue.js devtools遇到一系列问题
2017/10/24 Javascript
vue实现tab切换外加样式切换方法
2018/03/16 Javascript
深入浅析Vue.js计算属性和侦听器
2018/05/05 Javascript
原生js代码能实现call和bind吗
2019/07/31 Javascript
在layui中使用form表单监听ajax异步验证注册的实例
2019/09/03 Javascript
微信小程序使用蓝牙小插件
2019/09/23 Javascript
element form 校验数组每一项实例代码
2019/10/10 Javascript
JavaScript制作3D旋转相册
2020/08/02 Javascript
[00:12]2018DOTA2亚洲邀请赛 Sccc亮相SOLO赛,今年他又会有什么样的战绩?
2018/04/06 DOTA
[01:54]TI珍贵瞬间系列(三):翻盘
2020/08/28 DOTA
python教程之用py2exe将PY文件转成EXE文件
2014/06/12 Python
python操作redis的方法
2015/07/07 Python
Python3实战之爬虫抓取网易云音乐的热门评论
2017/10/09 Python
对Python中DataFrame选择某列值为XX的行实例详解
2019/01/29 Python
tensorflow 获取checkpoint中的变量列表实例
2020/02/11 Python
Python Tornado核心及相关原理详解
2020/06/24 Python
python使用布隆过滤器的实现示例
2020/08/20 Python
日本整理专家Marie Kondo的官方在线商店:KonMari
2020/06/29 全球购物
白酒业务员岗位职责
2013/12/27 职场文书
学校2014重阳节活动策划方案
2014/09/16 职场文书
汽车修理厂管理制度
2015/08/05 职场文书
2016年社区植树节活动总结
2016/03/16 职场文书