Spring Boot:加载所有在测试中实现接口的bean?

问题描述

我有一些接口Filter和该接口的一些实现。

@Test中,我想加载所有实现Filter的bean。

当前,我必须明确声明它们。例如:

@ContextConfiguration(classes = {Filtera.class,FilterB.class})

问题:引入另一个Filter将要求为每个使用filters的测试类添加它。

有更好的方法吗?

解决方法

添加一个TestConfiguration并在配置中声明实现该接口的所有bean。然后在测试中添加@Import(TestConfiguration.class)

这样,如果有其他实现,您只需将其添加到TestConfiguration中即可。

您唯一需要注意的就是使用@Qualifier注释添加适当的接口实现。