【发布时间】:2020-06-14 03:43:57
【问题描述】:
我在 Spring Boot 版本上工作: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-brands”下的属性绑定到 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>>行动:
更新应用程序的配置
现在,总结一下我已经为修复它所做的工作:
-
According to documentation我添加了一个依赖项
我
@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 documentation 说,每个项目都会自动包含 @EnableConfigurationProperties。
- 介于两者之间的某个地方我也做过:
Reimport All Maven Projects、clean install、Rebuild project和Invalid Caches and Restart
我现在坐在那台电脑前几个小时,无法完成。我究竟做错了什么 ?为什么它不想工作?
【问题讨论】:
标签: spring spring-boot