springboot中获得app_在SpringBoot中读取环境变量

What is the best way to read environment variables in SpringBoot?

In Java I did it using:

String foo = System.getenv("bar");

Is it possible to do it using @Value annotation?

解决方案Spring Boot allows you to externalize your configuration so you can work with the same application code in different environments. You can use properties files, YAML files, environment variables and command-line arguments to externalize configuration. Property values can be injected directly into your beans using the @Value annotation, accessed via Spring’s Environment abstraction or bound to structured objects via @ConfigurationProperties.

So, since Spring boot allows you to use environment variables for configuration, and since Spring boot also allows you to use @Value to read a property from the configuration, the answer is yes.

This can be tested easily, the following will give the same result:

@Component

public 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

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值