Spring 引导:在测试中加载实现接口的所有 bean?
Spring Boot: load all beans implementing an interface in test?
我有一些接口 Filter
和这个接口的一些实现。
在 @Test
中,我想加载所有实现 Filter
的 bean。
目前,我必须明确声明它们。例如:
@ContextConfiguration(classes = {FilterA.class, FilterB.class})
问题:引入另一个 Filter
需要为每个使用 filters
.
的测试 class 添加它
有没有更好的方法?
添加一个TestConfiguration
并在配置中声明所有实现该接口的bean。然后在你的测试中添加一个@Import(TestConfiguration.class)
。
这样,如果有额外的实现,您只需将其添加到 TestConfiguration
。
您唯一需要注意的是使用 @Qualifier
注释添加适当的接口实现。
我有一些接口 Filter
和这个接口的一些实现。
在 @Test
中,我想加载所有实现 Filter
的 bean。
目前,我必须明确声明它们。例如:
@ContextConfiguration(classes = {FilterA.class, FilterB.class})
问题:引入另一个 Filter
需要为每个使用 filters
.
有没有更好的方法?
添加一个TestConfiguration
并在配置中声明所有实现该接口的bean。然后在你的测试中添加一个@Import(TestConfiguration.class)
。
这样,如果有额外的实现,您只需将其添加到 TestConfiguration
。
您唯一需要注意的是使用 @Qualifier
注释添加适当的接口实现。