在 spring 中将 @Value 与条件一起使用,以便将值映射到字符串

Using @Value with condition in spring in order to map value to string

我有一个 application.properites 文件,其中包含以下内容:

xxx.xxx = sandbox
xxx.sandbox = 123
xxx.production = 456

如果 xxx.xxx == sandbox,我想映射到字符串值 123,如果 xxx.xxx == production

,我想映射到字符串值 123 和 456
...
public class temp { 

 @Value("${??????}")
    private String token;
}

是否可以填写由??????引发的条件?根据 xxx.xxx ?

将令牌映射到 123 或 456

您可以使用 Spring 配置文件,这样您就可以为每个环境创建一个 属性 文件。

Spring Profiles provide a way to segregate parts of your application configuration and make it only available in certain environments. Any @Component or @Configuration can be marked with @Profile to limit when it is loaded

你可以在这里看到更多 http://www.baeldung.com/spring-profiles

http://www.mkyong.com/spring/spring-profiles-example/

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html

一个简单的方法以防有人遇到这个问题:

@Value("#{'${xxx.xxx}'=='sandbox' ? '${xxx.sandbox}' : '${xxx.production}'}")

我只是觉得开始使用配置文件要容易得多。