提问人:Kevin Day 提问时间:11/6/2023 更新时间:11/6/2023 访问量:24
Spring Boot 转换器不适用于配置属性
Spring Boot converter not working for configuration properties
问:
我正在尝试提供一个转换器来将application.yml中的r,g,b元组转换为Color对象。属性解析失败,并显示:“org.springframework.core.convert.ConverterNotFoundException:找不到能够从类型[java.lang.String]转换为类型[java.awt.Color]的转换器”
转换器是这样声明的:
@Component
public static class ColorConverter implements Converter<String, Color>{
@Override
public Color convert(String source) {
...
}
}
我的环境:
Spring Boot 2.7 (英语)
应用程序注释;
@SpringBootApplication(scanBasePackages = {"my.packages"})
@EnableTransactionManagement(mode=AdviceMode.ASPECTJ)
@EnableSpringConfigured
该应用程序确实具有 WebMvcConfigurer 子类
我还尝试过什么:
- 将@EnableConfigurationProperties添加到应用程序类。这没有区别。
- 确认转换器在启动期间注册(我在零参数构造函数上放置了一个断点)
- 在 WebMvcConfigurer 中注册转换器(这没有意义 - 我需要的转换器是属性解析,而不是 mvc 调用 - 但我还是试过了)。这没有区别。
答:
0赞
Kevin Day
11/6/2023
#1
终于找出了正确的谷歌搜索词。
解决方案是用@ConfigurationPropertiesBinding注释 Convert 类:
@ConfigurationPropertiesBinding
@Component
public static class ColorConverter implements Converter<String, Color>{
}
@EnableConfigurationProperties注解没有区别 - 听起来像是Spring Boot自动包含的(参考:https://www.baeldung.com/spring-enable-config-properties )
上一个:从外部位置加载属性
下一个:Spring Boot 中的属性
评论