编程语言
首页 > 编程语言> > java-Spring Expression Language-如果设置了Profile,则设置不同的值

java-Spring Expression Language-如果设置了Profile,则设置不同的值

作者:互联网

我有这样的课:

public AbstractConfig() {
    super(DataConfig.MGR_NAME);
}

在DataConfig内部有:

    public final String MGR_NAME = "theManager";

我发现SpEL文档令人困惑.如果设置了弹簧配置文件,是否可以更改值?也就是说,如果我的配置文件为“ AlternateManager”,请使用ManagerAlt,否则默认为theManager?

在编写此标记以获取活动配置文件时,我希望可以使用下面的语法来实现此目的:

    @Value("#PROFILE['AlternateManager'] ? 'theManagerAlt' : 'theManager' ")
    public final String MGR_NAME;

解决方法:

回答:

经过大量的搜寻和游玩,终于找到了.希望这对其他人有用!这有效:

@Value("#{environment.acceptsProfiles('AlternateManager') ? 'theManagerAlt' : 'theManager' }")

字符串不能是最终的,但我可以接受.

对我来说似乎很遗憾,这没有得到很好的记录.
这张旧票:https://jira.spring.io/browse/SPR-9037将我链接到一个旧的SO问题,该问题给了我答案.

该票证本质上是要求提供更好的文档.
IMO,每个人都应该为那张6岁的OPEN票投票.

标签:spring-el,spring-profiles,spring,java
来源: https://codeday.me/bug/20191024/1924573.html