【发布时间】:2015-10-28 17:29:11
【问题描述】:
我有一个旨在启动我的 Spring Boot 应用程序的集成测试:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = AppConfigCorrelationIdTestIt.class)
@WebIntegrationTest("server.port:0")
public class CorrelationIdTestIT {
配置类在哪里:
@EnableConfigurationProperties
@ComponentScan
@EnableAutoConfiguration
@Configuration
public class AppConfigCorrelationIdTestIt {
在应用程序中,我有一个定义的自定义 servlet 过滤器:
public class CorrelationHeaderFilter implements Filter {
但是在测试我的应用时,我发现客户过滤器没有被实例化并注入到过滤器链中。我发现解决这个问题的唯一方法是在AppConfigCorrelationIdTestIt 中手动将其创建为 bean,然后它就可以完美运行了。
@Bean
public CorrelationHeaderFilter correlationHeaderFilter() {
return new CorrelationHeaderFilter();
}
任何想法为什么 Spring Boot 在应用程序启动时没有选择过滤器?
谢谢
【问题讨论】:
-
对过滤器不太了解...但是其他组件应该用“组件”或“服务”注解才能找到。
-
嘿!您找到解决方案了吗?
标签: spring filter integration-testing