【发布时间】:2014-03-12 06:15:49
【问题描述】:
我正在尝试使用 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 中定义的任何键。
【问题讨论】:
标签: spring