【发布时间】:2016-12-22 16:06:07
【问题描述】:
最近,Spring Boot 新增了TypeExcludeFilters。一个突出的用例是SpringBootApplication 注释。
在 Spring Boot 1.4 之前:
// ...
@ComponentScan
public @interface SpringBootApplication {
// ...
自 Spring Boot 1.4 起:
// ...
@ComponentScan(excludeFilters = @Filter(type = FilterType.CUSTOM,
classes = TypeExcludeFilter.class))
public @interface SpringBootApplication {
// ...
主要动机似乎是改进 Spring 中的测试支持,但我无法直观地理解它的作用以及它在什么情况下可能是有益的。
有人可以用一个简单的例子来说明这个新概念是如何使用的吗?
背景:更改出现在 Spring 1.4.0 中,commit 513dec718fd3e7449ec76b6a916f4696d1942d5d:
添加一个新的 TypeFilter 专门用于排除候选组件。 过滤器应用于
@SpringBootApplication并允许测试 动态贡献排除过滤器,以便特定类别的 可以排除组件。
【问题讨论】:
-
例如,如果您有许多来自第三方库的类,并且不需要对这些进行组件扫描。启动应用程序的改进不大。
标签: java spring spring-boot spring-test