在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.activeapplication.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

回到顶部