前言:
在最近工作中,相关业务代码需要引用一个工具包。原来的同事在工具包中,封装了Spring AOP切面的Bean,但是这样的工具包非常不友好,工具包不应该有这些特殊的处理。有了这些特殊的处理,引用方也要特殊处理。
正文:
因为工具包中封装了Spring切面bean,我首先想到在@SpringBootApplication注解中exclude属性添加该类,但是报“The following classes could not be excluded because they are not auto-configuration classes:XXXXXXXX”错误。原因是:@SpringBootApplication注解的exclude只可以排除spring自动配置的bean。
经过搜索资料,@ComponentScan注解的excludeFilters可以排除该bean,具体写法如下:文章来源:https://www.toymoban.com/news/detail-609515.html
@ComponentScan(value = "com.xxx",excludeFilters = {@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE,classes={Xxx.class})})
@ComponentScan注解的excludeFilters一个支持五种类型:FilterType.ANNOTATION:按照注解方式、FilterType.ASSIGNABLE_TYPE:按照指定类型的方式、FilterType.ASPECTJ:使用ASPECTJ表达式的方式、FilterType.REGEX:利用正则表达式方式、FilterType.CUSTOM:自己实现TypeFilter接口进行自定义规则。每种规则如何使用,请大家自行学习一下吧。文章来源地址https://www.toymoban.com/news/detail-609515.html
到了这里,关于Springboot项目排除Bean的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!