Какова цель добавления компонента "PropertySourcesPlaceholderConfigurer" в качестве компонента весной? . Насколько я понял, когда вы назовете свой файл свойств application.properties, spring автоматически возьмет файл, когда он находится в папке src / main / resources. Имея это, когда я удаляю объявление компонента для PropertySourcesPlaceholderConfigurer, он говорит, что не может выполнить автоматическую привязку свойства.
Что мне не хватает, почему он не работает без 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 работает нормально. Когда я удаляю bean-компоненты @PropertySources и @PropertySourcesPlaceholderConfigurer, поскольку весна автоматически подбирает application.properties, он не работает.
удаление добавленного вручную bean-компонента для PropertySourcesPlaceholderConfigurer




it says when you name your property file as application.properties, spring will automatically take the file when it is in src/main/resources Folder
Насколько я знаю - это правильно только для Spring Boot. Для ядра Spring вы должны определить свой prps в contxet. Есть несколько способов. В xml
< context:property-placeholder location = "classpath:application.properties" />
или используя аннотацию Java
@Configuration
@PropertySource("classpath:application.properties")
Нет необходимости определять PropertySourcesPlaceholderConfigurer с Spring 4.3RC2
даже после использования аннотации @PropertySource без bean-компонента для PropertySourcesPlaceHolderConfigurer он не работает
Ага, про @Configuration забыл. Попробуй добавить.
Верный! Смена весенней версии в pom.xml сработала! Спасибо
@ChinniahAnnamalai, без проблем. Я добавил информацию о версии к моему ответу
Как удалить
PropertySourcesPlaceholderConfigurer? Spring автоматически инициализирует этот bean-компонент, если он присутствует в пути к классам.