Я работаю на весенней загрузочной версии: 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>>
Действие:
Обновить конфигурацию вашего приложения
Теперь, чтобы подвести итог, что я уже сделал, чтобы исправить это:
- Согласно документации 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
Я сижу уже несколько часов перед этим компьютером, могу не сделать это. Что я делаю неправильно ? Почему он не хочет работать?