在SpringBoot中读取环境变量
在 的最佳方法是什么? 在Java中,我使用: *
String foo = System.getenv("bar");
是否可以使用@Value
注释来做到这一点?
回答:
引用文档:
Spring Boot允许您外部化配置,以便可以在不同环境中使用相同的应用程序代码。您可以使用属性文件,YAML文件,
和命令行参数来外部化配置。可以
将属性值直接注入到您的bean中,可以通过Spring的
Environment
抽象访问,也可以通过绑定到结构化对象@ConfigurationProperties
。
因此,由于Spring Boot允许您使用环境变量进行配置,并且由于Spring Boot还允许您使用@Value
从配置中读取属性,因此答案是肯定的。
这很容易测试,下面将给出相同的结果:
@Componentpublic class TestRunner implements CommandLineRunner {
@Value("${bar}")
private String bar;
private final Logger logger = LoggerFactory.getLogger(getClass());
@Override
public void run(String... strings) throws Exception {
logger.info("Foo from @Value: {}", bar);
logger.info("Foo from System.getenv(): {}", System.getenv("bar")); // Same output as line above
}
}
以上是 在SpringBoot中读取环境变量 的全部内容, 来源链接: utcz.com/qa/435605.html