gpt4 book ai didi

java - 使用 System.getProperty ("Some_key") 作为键获取属性值

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

这是我的带有 spring 注释的类

@Component
Class XyzPropeties {
@Value("${#{systemProperties['xyz']}}"); //Tried but it doesn't work
private xyzValue;
}

xyz.属性

abc=abcValue

所以我设置 System.setProperty("xyz", "abc"); 并期望 XyzProperties 的 'abcValue' 应该产生 abcValue。

谢谢。

回答自己的问题

这就是答案 ->@Value("${${xyz}}")//进行了逆向工程, Spring 递归地计算表达式,它首先计算 ${xyz},其计算结果为 abc,然后计算 ${abc},其计算结果为 abcValue 然后没有进一步的评估,因此它返回值 abcValue

最佳答案

如果我理解正确,您希望在代码的任何位置访问 XyzProperties 类的属性 xyzValue 的值。这个值存储在 xyz.properties 文件中。

一种更简单的方法是将属性存储在 application.properties 文件中,该文件存储在 Spring 应用程序的“resources”文件夹中。要使用这些属性,您可以使用单例类:

class Example {

private static Example instance = null;

@Value(${your.property.key.on.application.properties})
private String value;

private Example(){}

public static Example getInstance(){
if(instance == null){
instance = new Example();
}
return instance;
}

public String getValue(){
return value;
}
}

希望对你有帮助!

关于java - 使用 System.getProperty ("Some_key") 作为键获取属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60723118/

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