Spring仅在特定配置文件上激活注释

时间:2019-02-11 04:29:30

标签: spring-boot spring-profiles

我的Spring安全性功能是通过主类中的注释激活的。下面的示例。

@ImportResource("classpath:/securityContext.xml")
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true)
public class MySpringBackend {}

我想将加载这些与安全相关的文件(目前通过上面的注释完成)的过程限制为仅某些Spring profiles,我将作为程序参数将其传递。

我找不到有关按配置文件限制注释的任何文档。这可能吗?

例如:将@Profile("production")添加到上述注释中,便会将其限制在生产资料中。


2 个答案:

答案 0 :(得分:1)

由于@Component或@Configuration只能用@Profile标记,因此需要将@Conditional注释与@ImportedResource结合使用以在特定配置文件上激活。检查此stackoverflow页面以获取解决方案link

答案 1 :(得分:0)

具有2个不同的类,每个类具有不同的Profile批注。

第1类将具有1组注释(除了其概要注释之外)。 第2类将具有另一组注释(除了其概要注释之外,还有一次注释)。

在运行时,基于活动配置文件,仅两个类之一将被注入Application上下文。请注意,只有此特定的类注释将被激活。