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实现
Jun 23 Java/Android
使用Springboot实现健身房管理系统
Jul 01 Java/Android
Java异常处理try catch的基本用法
Dec 06 Java/Android
springboot新建项目pom.xml文件第一行报错的解决
Jan 18 Java/Android
SSM项目使用拦截器实现登录验证功能
Jan 22 Java/Android
Java 通过手写分布式雪花SnowFlake生成ID方法详解
Apr 07 Java/Android
SpringBoot中获取profile的方法详解
Apr 08 Java/Android
java中为什么说子类的构造方法默认访问的是父类的无参构造方法
Apr 13 Java/Android
Java由浅入深通关抽象类与接口(上篇)
Apr 26 Java/Android
Spring Data JPA框架持久化存储数据到数据库
Apr 28 Java/Android
Android中View.post和Handler.post的关系
Jun 05 Java/Android
Java结构型设计模式之组合模式详解
Sep 23 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中的use关键字概述
2014/07/23 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
2015/12/17 PHP
PHP实现的简单sha1加密功能示例
2017/08/27 PHP
Javascript 学习笔记 错误处理
2009/07/30 Javascript
html数组字符串拼接的最快方法
2009/09/16 Javascript
YUI的Tab切换实现代码
2010/04/11 Javascript
循环 vs 递归浅谈
2013/02/28 Javascript
用innerhtml提高页面打开速度的方法
2013/08/02 Javascript
JS的encodeURI和java的URLDecoder.decode使用介绍
2014/05/08 Javascript
JavaScript 常见安全漏洞和自动化检测技术
2015/08/21 Javascript
理解JavaScript事件对象
2016/01/25 Javascript
js注入 黑客之路必备!
2016/09/14 Javascript
浅谈nodejs中的类定义和继承的套路
2017/07/26 NodeJs
JavaScript实现获取select下拉框中第一个值的方法
2018/02/06 Javascript
javascript+HTML5 canvas绘制时钟功能示例
2019/05/15 Javascript
Layui实现主窗口和Iframe层参数传递
2019/11/14 Javascript
解决ant Design中Select设置initialValue时的大坑
2020/10/29 Javascript
JavaScript中Object、map、weakmap的区别分析
2020/12/15 Javascript
python 域名分析工具实现代码
2009/07/15 Python
Python读大数据txt
2016/03/28 Python
Python 数据结构之旋转链表
2017/02/25 Python
Python json模块与jsonpath模块区别详解
2020/03/05 Python
Python内置方法和属性应用:反射和单例(推荐)
2020/06/19 Python
django使用graphql的实例
2020/09/02 Python
python collections模块的使用
2020/10/16 Python
html5 实现客户端验证上传文件的大小(简单实例)
2016/05/15 HTML / CSS
基于MUI框架使用HTML5实现的二维码扫描功能
2018/03/01 HTML / CSS
护士辞职信范文
2014/01/19 职场文书
幼儿园教师节活动方案
2014/02/02 职场文书
建筑设计专业求职自我评价
2014/03/02 职场文书
社区义诊活动总结
2014/04/30 职场文书
辞职信格式范文
2015/05/13 职场文书
党员转正党支部意见
2015/06/02 职场文书
导游词之桂林山水
2019/09/20 职场文书
Pygame Time时间控制的具体使用详解
2021/11/17 Python
Java完整实现记事本代码
2022/06/16 Java/Android