使用版本:spring boot 1.5.21
问题:在scala中配置对jackson的 `com.fasterxml.jackson.databind.Module` 进行配置但是始终无法将实体正确的转换。
解决:在spring boot时不要使用@EnableWebMvc注解。
查询过程:通过不断调试初始化的过程,发现在实例化spring boot的自动配置类之前就对mvc进行初始化。
心得:其实应该多看下官方文档,简单的几行就能说明问题,不要相信记忆,因为记忆会变,重要的是版本也会变,而且要注意在查看文档时要先看spring boot的版本,再看spring framework的文档。
附带spring boot部分翻译:
27.1.1 Spring MVC 自动化配置
Spring Boot 对 Spring MVC 提供自动化配置,并且在大多数的应用中运行良好。
基于Spring默认设置的基础上增加下列特性:
包括实例 ContentNegotiatingViewResolver 和 BeanNameViewResolver 。
支持静态资源,包括支持WebJars。
自动注册 Converter, GenericConverter, Formatter 的实例。
支持 HttpMessageConverters。
支持静态 index.html 。
定制 Favicon 图片。
自动使用 ConfigurableWebBindingInitializer 。
如果你想保持这些特性,并且增加额外的 MVC 配置(拦截器,格式器,视图控制器,等等),你需要在 自己的 WebMvcConfigurerAdapter 类上增加 @Configuration 注解,但是注意不要增加@EnableWebMvc 。如果希望自定义 RequestMappingHandlerMapping,RequestMappingHandlerAdapter 或 ExceptionHandlerExceptionResolver,可以声明 WebMvcRegistrationsAdapter 实例来提供相关组件。
如果希望对Spring MVC进行完全自主配置,可以在增加 @Configuration 注解的情况下额外再增加 @EnableWebMvc 。
附上scala的在Spring Boot Mvc 下的 jackson 配置
import com.fasterxml.jackson.databind.Module import com.fasterxml.jackson.module.scala.DefaultScalaModule import org.springframework.context.annotation.{Bean, Configuration} @Configuration class WebMvcConfig { @Bean def defaultScalaModule():Module = { DefaultScalaModule } }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。