正常的SpringBoot项目接口,返回对象或者JSON都是正常,但是加入拦截器后,惊奇的发现只能返回String,返回对象就报 “No converter found for return value of type”,解析器无法转换对象的问题。
网上找了好多解答都是以下几种:
1、缺失Jackson 依赖,如果有 spring-boot-starter-web依赖可排除该问题
2、是否是 POJO (get set 方法是否有)
注释:我使用lombok插件,用@Data注解,所以不可能是这个问题导致的。
3、接口是否有@RestController注解
以上的解决方案都不对,罪魁祸首是拦截器的问题!!!
原本拦截器配置使用的是继承 WebMvcConfigurationSupport导致的。
我原本的拦截器是这样的:
@Configuration
public class InterceptorConfig extends WebMvcConfigurationSupport {
}
WebMvcConfigurationSupport在springMvc源码中有相关注解
@Configuration
@ConditionalOnWebApplication(type = Type.SERVLET)
@ConditionalOnClass({ Servlet.class, DispatcherServlet.class, WebMvcConfig