栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

ComponentScan excludeFilters在Spring 4.0.6.RELEASE中不起作用

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ComponentScan excludeFilters在Spring 4.0.6.RELEASE中不起作用

经过大量的工作和研究,我注意到在组件扫描方面,Spring的行为并不奇怪。

伪像是这样的:

ServiceImpl
是实现
Service
接口的实际实现类。
ServiceMockImpl
是实现
Service
接口的模拟植入类。

我想调整组件扫描,使其仅加载,

ServiceMockImpl
但不会加载
ServiceImpl

我必须

@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value =ServiceImpl.class)
@ComponentScan
测试配置类的中添加,以从组件扫描中排除该特定类。但是即使进行了上述更改,两个类都已加载,并且测试失败。

经过大量的工作和研究,我发现

ServiceImpl
由于另一个类正在被加载并且其中包含
@ComponentScan
所有软件包而正在加载。因此,我添加了如下代码以
Application
从组件扫描中排除该类
@ComponentScan.Filter(type= FilterType.ASSIGNABLE_TYPE, value = Application.class)

之后,它按预期工作。

如下代码

@ComponentScan(    excludeFilters = {        @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = OAuthCacheServiceImpl.class),        @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = Application.class)    },    basePackages = {        "common", "adapter", "admin"    })

我已经看到很多有关组件扫描的问题很久没有得到回答,因此我想添加这些细节,因为这可能会在将来对某人有所帮助。

嗯…



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/454217.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号