gpt4 book ai didi

java - System.getenv(/**vName**/) 和 Autowiring 环境之间的区别和执行environment.getProperty ("myProp");

转载 作者:行者123 更新时间:2023-12-01 17:42:19 25 4
gpt4 key购买 nike

我知道 System.getenv(/**vName**/) 获取附加了 vName 变量的环境属性,但我很好奇我们是否也可以使用下面的方法来实现相同的结果?

@Autowired
private Environment environment;
environment.getProperty(/**vName**/);

有什么区别吗?我们什么时候应该使用哪一个?

代码正在运行

@Autowired
private Environment env; <---**I am not sure how this env is getting used?**

@Value("${someURLVriable}")
String APIURLTest;

@Bean(name = "restTemplate")
public RestTemplate restTemplate(RestTemplateBuilder builder) {

String env = System.getenv("environment");<--**eclipse giving warning here.**
String baseURL = System.getenv("illustrationAPIURL");
if (baseURL == null) {/** If baseURL comes null i.e it must be on local/test Env **/
baseURL = APIURLTest;
env = "DEV";
}

log.info("Environment loaded : {}.", env);
log.info("loaded apiURL : {}.", baseURL);
return builder.rootUri(baseURL).build();

}

最佳答案

使用System.getenv("XYZ"),您将只访问操作系统的环境变量。如果您使用Spring的Environment抽象,您不仅可以在操作系统的环境变量中搜索您的属性,还可以在以下位置搜索您的属性:

Properties play an important role in almost all applications, and may originate from a variety of sources: properties files, JVM system properties, system environment variables, JNDI, servlet context parameters, ad-hoc Properties objects, Maps, and so on. The role of the environment object with relation to properties is to provide the user with a convenient service interface for configuring property sources and resolving properties from them. - JavaDoc of the Environment interface

因此 Spring 实际上会根据正在运行的应用程序的 Activity 配置文件以及更多地方(例如,)搜索您请求的属性。 JNDI 或 ServletContextParameters。如果您不需要在多个地方额外搜索 Spring,只需注入(inject)一个环境变量(提示:系统属性 -DmyName= 之间存在差异foo 和环境变量 FOO_BAR=duke),那么你可以使用 System.getenv("XYZ")

关于java - System.getenv(/**vName**/) 和 Autowiring 环境之间的区别和执行environment.getProperty ("myProp");,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59607440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com