【发布时间】:2014-10-15 03:59:56
【问题描述】:
我有 spring boot 应用程序 (1.1.5.RELEASE) 并通过配置属性spring.profiles.active=MyProfile启用我的配置文件
配置文件被正确激活,我可以通过正在创建的配置文件中的 bean 看到这一点。
然后我有一个@Controller 使用如下:
@Controller
@RequestMapping("/someUrl")
@Profile("MyProfile")
public class MyController {
...
}
此控制器未实例化,并且控制器中使用的 URL 未映射。在同一个包中,我还有另一个不受@Profile 限制的控制器,它们会按预期进行实例化和映射。
那么在控制器上使用@Profile 注释与spring boot 不兼容吗?我应该使用其他方法吗?
编辑:这似乎是一个错误,好像我将 -Dspring.profiles.active=MyProfile 包含为控制器被实例化的 JVM 属性 :'(
Edit2:所以有趣的部分来了:
如果您在
application.properties中定义spring.profiles.active,默认情况下会从类路径加载,那么它可以工作当您将文件重命名为
test.properties并通过@PropertySource("classpath:test.properties")包含它时,它会停止工作。会引发一个错误。
编辑 3: 承诺:https://github.com/spring-projects/spring-boot/issues/1417
谢谢!
【问题讨论】:
-
对我来说,即使使用属性文件也能正常工作!
-
为避免重复工作,请提及您为此打开了一个问题:github.com/spring-projects/spring-boot/issues/1417
-
谢谢,谷歌点。补充说。
标签: java spring spring-mvc spring-boot