Удаление bean-компонента PropertySourcesPlaceHolderConfigurer Autowiring не работает

Какова цель добавления компонента "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, он не работает.

Как удалить PropertySourcesPlaceholderConfigurer? Spring автоматически инициализирует этот bean-компонент, если он присутствует в пути к классам.

Mạnh Quyết Nguyễn 23.05.2018 12:09

удаление добавленного вручную bean-компонента для PropertySourcesPlaceholderConfigurer

Chinniah Annamalai 23.05.2018 12:24
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
234
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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 он не работает

Chinniah Annamalai 23.05.2018 12:30

Ага, про @Configuration забыл. Попробуй добавить.

Danila Zharenkov 23.05.2018 12:39
jira.spring.io/browse/SPR-14140 похоже, что это ошибка, которая будет исправлена ​​в весенней версии 4.3RC2.
Danila Zharenkov 23.05.2018 12:48

Верный! Смена весенней версии в pom.xml сработала! Спасибо

Chinniah Annamalai 23.05.2018 14:35

@ChinniahAnnamalai, без проблем. Я добавил информацию о версии к моему ответу

Danila Zharenkov 23.05.2018 15:08

Другие вопросы по теме