Spring boot - свойства привязки [Свойства конфигурации] - PullRequest
1 голос
/ 01 марта 2020

Я работаю на весенней загрузочной версии: 2.0.2.RELEASE. В моем application.yml у меня есть:

cars:
  color-to-brands:
    red: car1, car2
    blue: car3, car4

, и мой класс конфигурации выглядит следующим образом:

@Getter @Setter
@Configuration
@ConfigurationProperties(prefix = "cars")
public class CarsProperties {

    private Map<String, List<String>> colorToBrands = Collections.emptyMap();
}

Когда я запускаю приложение, я продолжаю получать:

Не удалось привязать свойства в «cars.color-to-brand» к java .util.Map>:

Reason: Failed to bind properties under 'cars.color-to-brands' to java.util.Map<java.lang.String, java.util.List<java.lang.String>>

Действие:

Обновить конфигурацию вашего приложения

Теперь, чтобы подвести итог, что я уже сделал, чтобы исправить это:

  1. Согласно документации I добавил зависимость это дает мне процессор аннотаций для моего @ConfigurationProperties:
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-configuration-processor</artifactId>
  <version>${spring-boot.version}</version>
  <optional>true</optional>
</dependency>

У меня включен процессор аннотаций . Я использую Intellij. Annotation processors -> Maven default annotation processors profile имеет галочку Enable annotation processing, Processor path: содержит (...)\.m2\repository\org\springframework\boot\spring-boot-configuration-processor\2.0.2.RELEASE\spring-boot-configuration-processor-2.0.2.RELEASE.jar, Store generated sources relative to: Module content root,

В файле pom я добавил путь для этого процессора (среди прочего я использую):

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
  <source>1.8</source>
  <target>1.8</target>
  <annotationProcessorPaths>
      <path>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <version>${lombok.version}</version>
      </path>
      <path>
          <groupId>org.mapstruct</groupId>
          <artifactId>mapstruct-processor</artifactId>
          <version>${mapstruct.version}</version>
      </path>
      <path>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-configuration-processor</artifactId>
          <version>${spring-boot.version}</version>
      </path>
  </annotationProcessorPaths>
  <compilerArgs>
      <compilerArg>
          -Amapstruct.defaultComponentModel=spring
      </compilerArg>
  </compilerArgs>
</configuration>
Кроме того, intellij продолжает показывать всплывающее окно внутри CarsProperties:

Перезапустить процессор аннотации конфигурации Spring Boot для обновления сгенерированных метаданных

Я пропустил @EnableConfigurationProperties как:

Документация Spring Boot говорит, что каждый проект автоматически включает @ EnableConfigurationProperties.

Где-то посередине я также сделал: Reimport All Maven Projects, clean install, Rebuild project и Invalid Caches and Restart

Я сижу уже несколько часов перед этим компьютером, могу не сделать это. Что я делаю неправильно ? Почему он не хочет работать?

1 Ответ

1 голос
/ 01 марта 2020

Обновлена ​​версия весенней загрузки до 2.1.6.RELEASE и исправлено

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...