Java 使用System.getProperty(“Some”u key)作为键获取属性值
这是我的带有spring注释的课程Java 使用System.getProperty(“Some”u key)作为键获取属性值,java,spring,Java,Spring,这是我的带有spring注释的课程 @Component Class XyzPropeties { @Value("${#{systemProperties['xyz']}}"); //Tried but it doesn't work private xyzValue; } xyz.properties abc=abcValue 所以我正在设置System.setProperty(“xyz”、“abc”)并应为XyzProperties的“abcValue”,应为yeild
@Component
Class XyzPropeties {
@Value("${#{systemProperties['xyz']}}"); //Tried but it doesn't work
private xyzValue;
}
xyz.properties
abc=abcValue
所以我正在设置System.setProperty(“xyz”、“abc”)代码>并应为XyzProperties的“abcValue”,应为yeild abcValue
谢谢
回答自己的问题
这是答案->@Value(${xyz}”)
//做了一个反向工程,Spring递归地计算表达式,它首先计算${xyz}
,它计算为abc
,然后计算${abc}
它计算abcValue
,然后没有进一步的计算,因此它返回值abcValue
如果我理解正确,您希望在代码的任何位置访问XyzProperties类的属性xyzValue的值。该值存储在xyz.properties文件中
一种更简单的方法是将属性存储在application.properties文件中,该文件存储在spring应用程序的“resources”文件夹中。要使用这些属性,可以使用singleton类:
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;
}
}
希望有帮助 更多的上下文可能会有用…从哪里来的@Component
和@value
,从Spring注释开始。它没有。这不是太明显了吗?如果是这样的话,我就不会那样问这个问题了。