我在context.xml中有以下内容:
<bean id="myBean" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>file:${specific.dir}/file1.properties</value>
<value>file:${specific.dir}/file2.properties</value>
<value>file:${specific.dir}/file3.properties</value>
<value>file:${specific.dir}/file4.properties</value>
</list>
</property>
</bean>
我正在通过静态spring应用程序上下文在POJO中检索这个bean,并且通过调试器看起来确实有效。
我是否还要检索列表中的四个值以及此POJO中的属性名称?
我的staticSpringApplicationContext如下:
public class StaticSpringApplicationContext implements ApplicationContextAware {
private static ApplicationContext CONTEXT;
public void setApplicationContext(ApplicationContext context) throws BeansException {
CONTEXT = context;
}
public static Object getBean(String beanName) {
return CONTEXT.getBean(beanName);
}
}
在我的POJO中跟随这个:
StaticSpringApplicationContext.getBean("myBean");
非常感谢任何帮助或指导。我在春天遇到的麻烦比我承认的要多。
答案 0 :(得分:1)
你可以使用spring @Value注释,像这样:
@Component
public MyClass {
@Value("${some.prop.name1}")
private String myProp1;
}
file1.properties:
some.prop.name1=value1
我希望它会有所帮助。祝你好运。
答案 1 :(得分:0)
是否可以这样做取决于bean的定义。它必须有setLocations()
方法(或正确注释),Spring将通过该方法注入值。
如果存在,则使用bean上的getter方法检索值。如果不是,您将需要修改bean。