我正在尝试使用Environment bean获取在Springs上下文中配置的属性值(例如在spring PropertyPlaceholderConfigurer and context:property-placeholder已选中的答案中)。
public class SpringsPropertiesProvider implements IPropertiesProvider {
@Autowired Environment envinronment;
@Override
public String getProperty(String key) {
return envinronment.getProperty(key);
}
}
此类使用以下xml注册:
<context:property-placeholder
location="classpath:myproject/example.properties" />
<context:annotation-config />
<bean class="myproject.SpringsPropertiesProvider" id="springsPropertiesProvider"/>
但SpringsPropertiesProvider.getProperty方法不返回example.properties文件中配置的值。
我做错了什么以及如何动态访问placeholderconfigurer配置的属性?
PS。 在environment.getPropert(key)调用期间,调试显示org.springframework.core.env.PropertySourcesPropertyResolver在其propertySources字段中只有两个条目([systemProperties,systemEnvironment]),并且这两个条目都不包含example.properties中定义的任何键。 / p>
答案 0 :(得分:1)
试试这个
<context:property-placeholder
location="classpath:myproject/example.properties" ignore-resource-not-found="true"/>
如果项目没有启动,则表示spring无法找到属性文件。 说到这,你的项目结构是什么样的?
<强>更新强>
以下link解释了为什么这不起作用