U盘PE| w764位旗舰版下载 | U盘装win7系统 | U盘启动 |win7pe | win10下载 |加入收藏土豆PE官网U盘PE,U盘装win7系统,win7pe,U盘启动,U盘装系统,w764位旗舰版下载站!
当前位置:主页 > 帮助中心 > 土豆PE使用教程 >

Spring Boot应用中@CompentScan excludeFilters配置无效的问题

来源:http://www.tudoupe.com时间:2022-07-18

@CompentScan 需要为配置扫描的备注包

excludeFilters是用来排除不需要扫描的类的配置项目之一

FilterType

  • ANNOTATION

根据注解来排除

  • ASSIGNABLE_TYPE

根据类类型来排除

  • ASPECTJ

基于 SpectJ表达式的排斥

  • REGEX

按常规表达式排斥

  • CUSTOM

需要实现自定义滤波类排除org.springframework.core.type.filter.TypeFilter接口

在我们项目中,有一个核心模块,它存储每个项目的公共包,但一些开发者还将一些与此无关的初始化操作纳入核心项目,这会导致项目A参照核心,然后做一些无用的初始化操作,因为核心有太多的包,无法一个一个引用,因此,最快速的方法是使用排除规则,使用REGEX执行排斥操作,但重复尝试后,排斥类仍被扫描并在春期初始化。这不是有效的吗?经过多次搜索后,它在文章中被启发。

java - Spring boot ComponentScan excludeFIlters not excluding - Stack Overflow

Each component scan does filtering individually. While you exclude Starter.class from SimpleTestConfig, SimpleTestConfig initializes Application, which does it's own @ComponentScan without excluding Starter. The clean way of using ComponentScan is for each ComponentScan to scan separate packages, that way each filter work fine. When 2 separate ComponentScans scan the same package (as in your tests), this does not work.

当您从 SimpleTestConfig.In类中排除Starter时,每个组件的扫描将被单独筛选。SimpleTestConfig启动应用程序,它将单独执行@ComponentScan,而不排除Starter。使用ComponentScan的最简单的方法是单独扫描每个ComponentScan包。因此每个滤波器可以正常工作。当两个单独的ComponentScans扫描同一包(如测试中),这将不起作用。

大致的意思就是说,如果你在A类中,使用了exlucde配置,在你不需要排除的类中,有某些类B的注解上也使用了@ComponentScan,但 exclude操作在上文B类中没有执行,因此A类中的 exclude不会生效。 结果扫描了核心包下面的类,并且确实使用了B类@ComponentScan,那么在A类中,同时也排除类B,A类中的exclude全部生效。

2人点赞

Spring



作者:LoWang
链接: https://ww.Jianshu.com/p/2cabfb1975c7
来源:简书
版权由作者所有,商业复制的,请与作者联络授权。非商业复制的,请注意地点。

Copyright © 2012-2014 Www.tudoupe.Com. 土豆启动 版权所有 意见建议:tdsky@tudoupe.com

土豆系统,土豆PE,win7系统下载,win7 64位旗舰版下载,u盘启动,u盘装系统,win10下载,win10正式版下载,win10 RTM正式版下载,win8下载,电脑蓝屏,IE11修复,网络受限,4K对齐,双系统,隐藏分区,系统安装不了,U盘装系统,笔记本装系统,台式机装系统,diskgenius运用,GHSOT装系统,U盘修复,U盘技巧,U盘速度,U盘不能格式化,U盘复制发生错误,U盘加密,U盘选购,开机黑屏,蓝屏,进不了系统,上不了网,打不开程序,点击无反应,系统设置,PE个性化,PE添加网络,PE维护系统

点击这里给我发消息