与基于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配置非常容易。

10-06 09:19