如何在Spring Boot中限制src / test / java的自动扫描?

时间:2016-11-03 17:13:43

标签: java spring spring-mvc spring-boot spring-test

我按照“掌握Spring MVC”一书创建了一个简单的Web应用程序。一切都运行正常,但是,在测试章节中,我创建了两个带有@Primary注释的bean。 1. ProviderSignInController和2.我的搜索服务类的Impl。这两个都在包src / test / java。

这里的问题是,如果我部署我的应用程序,即使这样,这两个bean也会出现,我无法使用我的实际身份验证和搜索服务。

我没有收到任何错误或异常。我想知道在我的开发环境中部署应用程序时,在测试和实际实现时自动注入我的模拟/存根的最佳方法是什么。

源代码链接为here。感谢。

2 个答案:

答案 0 :(得分:1)

而不是@Primary,我建议在@Profile("PRODUCTION")旁边使用@Bean作为您的真实/生产bean /类& @Profile("!PRODUCTION")与您的测试bean /类。然后,在运行时指定活动配置文件

-Dspring.profiles.active=PRODUCTION, ...

答案 1 :(得分:0)

问题在于我执行应用程序的方式。

当我直接从eclipse(Run As Spring Boot App)启动应用程序时,测试包含在构建中,因为它们存在于类路径中。

我修改了我的方法,现在我正在使用gradle build(gradle bootRun)来启动我的应用程序。这解决了这个问题。感谢@DwB提供的提示。