I have a Spring-managed bean that loads properties using a property-placeholder
in its associated context.xml
:
<context:property-placeholder location="file:config/example.prefs" />
I can access properties using Spring's @Value
annotations at initialisation, e.g.:
@Value("${some.prefs.key}")
String someProperty;
...but I need to expose those properties to other (non-Spring managed) objects in a generic way. Ideally, I could expose them through a method like:
public String getPropertyValue(String key) {
@Value("${" + key + "}")
String value;
return value;
}
...but obviously I can't use the @Value
annotation in that context. Is there some way I can access the properties loaded by Spring from example.prefs
at runtime using keys, e.g.:
public String getPropertyValue(String key) {
return SomeSpringContextOrEnvironmentObject.getValue(key);
}