在Spring Boot中使用@Profile
我有spring boot应用程序(
)并通过配置属性启用了我的配置文件spring.profiles.active=MyProfile
概要文件已正确激活,我可以通过创建的概要文件中的bean看到该概要文件。
然后我有一个@Controller
用法如下:
@Controller@RequestMapping("/someUrl")
@Profile("MyProfile")
public class MyController {
...
}
该控制器未实例化,并且未映射该控制器中使用的URL。在同一个程序包中,我有另一个不受限制的控制器,@Profile
这些控制器已实例化并按预期进行映射。
那么@Profile
在控制器上使用注释与Spring Boot" title="Spring Boot">Spring Boot不兼容吗?我应该使用其他方法吗?
毕竟这似乎是一个错误,好像我包括-Dspring.profiles.active=MyProfile
实例化控制器作为JVM属性
有趣的部分到了:
如果定义
spring.profiles.active
在application.properties
其默认情况下,从classpath中加载thne它的工作原理当您将文件重命名为
test.properties
并通过@PropertySource("classpath:test.properties")
它包含它时,它将停止工作。将提出反对它的错误。
如承诺的那样:https : //github.com/spring-projects/spring-
boot/issues/1417
谢谢!
回答:
我已经将其归结为我认为是Spring中的错误。有关更多详细信息,请参见SPR-12111。
以上是 在Spring Boot中使用@Profile 的全部内容, 来源链接: utcz.com/qa/400712.html