You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot启动时未注册ConversionService转换器问题排查

问题根源

你的AddressConfig类中的configureAddressConverters只是一个普通自定义方法,Spring容器启动时不会自动识别并调用它,导致转换器根本没被注册到ConversionService中——这就是断点未触发、转换时抛出异常的核心原因。

两种解决方案

方案一:实现WebMvcConfigurer接口重写扩展方法

让配置类实现WebMvcConfigurer接口,并重写addFormatters方法(这是Spring MVC提供的格式化器/转换器注册扩展点):

@Configuration
public class AddressConfig implements WebMvcConfigurer {

    @Override
    public void addFormatters(FormatterRegistry registry) {
        registry.addConverter(new AddressConverter());
        registry.addConverter(new AddressDTOConverter());
    }

}

Spring启动时会自动调用所有WebMvcConfigurer实现类的addFormatters方法,你的转换器会被正常注册。

方案二:将转换器注册为Spring Bean

无需实现任何接口,直接在配置类中用@Bean注解声明转换器实例,Spring会自动检测并将这些Converter Bean注册到ConversionService:

@Configuration
public class AddressConfig {

    @Bean
    public Converter<AddressDTO, AddressEntity> addressDTOConverter() {
        return new AddressDTOConverter();
    }

    @Bean
    public AddressConverter addressConverter() {
        return new AddressConverter();
    }

}

这种方式更简洁,Spring会自动处理转换器的注册逻辑。

验证

重启项目后,之前设置的断点会正常触发,调用REST接口进行DTO到Entity的转换时,ConverterNotFoundException异常会消失。

内容的提问来源于stack exchange,提问作者hotmeatballsoup

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 09:25:09