删除PropertySourcesPlaceHolderConfigurer bean自动装配不起作用

时间:2018-05-23 10:05:00

标签: java spring

在Spring中添加“PropertySourcesPlaceholderConfigurer”作为bean的目的是什么? 。据我所研究,当你将属性文件命名为application.properties时,spring会在src / main / resources文件夹中自动获取该文件。这样,当我删除PropertySourcesPlaceholderConfigurer的Bean声明时,它说无法自动装配该属性。

我错过了什么,没有PropertySourcesPlaceholderConfigurer

,为什么它不起作用

样本1:

@Configuration
@PropertySource(value = { "application.properties" }, ignoreResourceNotFound = true)
@ComponentScan(basePackages = { Some Package })
public class ApplicationConfig {

    ApplicationConfig() {

    }

    @Bean
    public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
        return new PropertySourcesPlaceholderConfigurer();
    }

}

示例1工作正常,当我删除@PropertySources@PropertySourcesPlaceholderConfigurer bean时,因为spring会自动选择application.properties,但它不起作用。

1 个答案:

答案 0 :(得分:0)

  

它说当你将属性文件命名为application.properties时,   spring会在文件进入时自动获取文件   src / main / resources文件夹

据我所知 - 这只适用于Spring Boot。 对于弹簧核心,您应该在contxet中定义prps。 有几种方法。 在xml中

< context:property-placeholder location="classpath:application.properties" />

或使用Java注释

@Configuration
@PropertySource("classpath:application.properties")

自Spring 4.3RC2

以来,没有必要定义PropertySourcesPlaceholderConfigurer