与基于XML的Spring配置的基于Java的配置等效吗?
<util:properties id="mapper" location="classpath:mapper.properties" />
然后才能在代码中使用此特定属性对象,例如:
@Resource(name = "mapper")
private Properties myTranslator;
看着文档,我看着
@PropertySource
注解,但是在我看来,特定的propertyfile将无法从Environment对象单独访问。
最佳答案
很简单,声明一个 PropertiesFactoryBean
。
@Bean(name = "mapper")
public PropertiesFactoryBean mapper() {
PropertiesFactoryBean bean = new PropertiesFactoryBean();
bean.setLocation(new ClassPathResource("com/foo/jdbc-production.properties"));
return bean;
}
在文档here中,您会注意到,在他们制作
<util:properties>
之前,他们曾经使用过PropertiesFactoryBean
这样<!-- creates a java.util.Properties instance with values loaded from the supplied location -->
<bean id="jdbcConfiguration" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="location" value="classpath:com/foo/jdbc-production.properties"/>
</bean>
如上所示,将其转换为Java配置非常容易。