我需要一些关于将属性值注入到在Web应用程序之外定义的bean的帮助。
Web应用程序在src / main / resource下有一个属性文件.chring应用程序上下文xml将属性占位符定义为
<context:property-placeholder
location="classpath:test.properties,file:/etc/test1.properties"
ignore-resource-not-found="true"
/>
其中test1.properties是另一个驻留在应用程序之外的文件。bean注入了应用程序中定义的属性(test.properties),但我想注入test1.properties中定义的属性(理想情况下,想法是覆盖应用程序中的属性值并读取应用程序外部定义的属性值。
感谢。
答案 0 :(得分:1)
我想这就是你要找的东西
<context:property-placeholder location="file:c:/kp/sec.properties" order="1" ignore-resource-not-found="true" ignore-unresolvable="true" />
<context:property-placeholder location="classpath:kp-props.properties" order="2" />
如果文件sec.properties存在,则从sec.properties获取值,如果文件或属性不存在,则从资源目录中获取kp-props.properties文件中的属性(如果在任一场所应用程序中找不到该属性)会失败)
并说你有财产my.prop
,你可以按如下方式注入财产。
@Component
public class KPProps {
@Value("${my.prop}")
private int props;
public void print(){
System.out.println(props);
}
}
答案 1 :(得分:1)
您可以在applicationContext.xml
中使用如下所示<util:properties id="property" location="classpath:test.properties"/>
在Java中,
@Autowired
protected Properties property;