从Springs获取已配置的属性

时间:2014-03-12 06:15:49

标签: spring

我正在尝试使用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>

1 个答案:

答案 0 :(得分:1)

试试这个

<context:property-placeholder
    location="classpath:myproject/example.properties" ignore-resource-not-found="true"/>

如果项目没有启动,则表示spring无法找到属性文件。 说到这,你的项目结构是什么样的?

<强>更新

以下link解释了为什么这不起作用