我的xml文件中有以下配置文件:

<util:properties id="apiConfigurator" location="classpath:api.properties" scope="singleton"/>


这是我的属性文件:

appKey=abc
appSecret=def


在春季班上,我得到了一些像这样的值:

@Value("#{apiConfigurator['appKey']}")


我想在Spring中创建一个@Configuration类以以下方式解析属性文件:

@Value("#{apiConfigurator['appKey']}")


在使用该类的我的课程中仍然可以正常工作。我该怎么做呢?

最佳答案

当您指定

<util:properties .../>


Spring用您也指定的名称/ id注册一个PropertiesFactoryBean bean。

您需要做的就是自己提供一个@Bean

// it's singleton by default
@Bean(name = "apiConfigurator") // this is the bean id
public PropertiesFactoryBean factoryBean() {
    PropertiesFactoryBean bean = new PropertiesFactoryBean();
    bean.setLocation(new ClassPathResource("api.properties"));
    return bean;
}

08-26 06:50