在 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}'}")
我只是觉得开始使用配置文件要容易得多。
我有一个 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}'}")
我只是觉得开始使用配置文件要容易得多。