当前位置: 首页 > 面试题库 >

Spring,Jackson和Customization(例如CustomDeserializer)

浦德义
2023-03-14
问题内容

我还是不熟悉Spring,但是遇到了一个问题,有必要为Jackson实施我的自定义解串器。该过程在一个小型教程中进行了描述,但是,我对Spring感到困惑。我不明白,在哪里

 ObjectMapper mapper = new ObjectMapper();

在Spring MVC中,当通过控制器类的方法对json反序列化时执行。所以我不知道该怎么做才能用自定义解串器替换默认的解串器。

任何建议最欢迎。


问题答案:

您没有说您在spring如何使用Jackson,所以我假设您通过<mvc:annotation-driven/>@RequestBody和/或@ResponseBody注解使用它。

要做的一件事<mvc:annotation-driven/>是注册一个AnnotationMethodHandlerAdapter带有许多预配置HttpMessageConverterBean的Bean,其中包括MappingJacksonHttpMessageConverter,该Bean处理来往于Jackson注释的模型类之间的编组。

现在MappingJacksonHttpMessageConverter有了一个setObjectMapper()方法,可以让您覆盖默认值ObjectMapper。但是由于MappingJacksonHttpMessageConverter是由创建的<mvc:annotation-driven/>,所以您无法实现。

但是,<mvc:annotation-driven/>这只是一个便捷的捷径。声明自己的AnnotationMethodHandlerAdapterbean,将自己的bean注入MappingJacksonHttpMessageConverter(通过messageConverters属性)并注入自己的自定义ObjectMapper变量同样有效。

然后,您将遇到如何构建自定义的问题ObjectMapper,因为它不是一个非常适合Spring的类。我建议编写自己的简单实现FactoryBean

因此,您最终会得到如下结果:

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
   <property name="messageConverters">
      <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
         <property name="objectMapper">
            <bean class="com.x.MyObjectMapperFactoryBean"/>
         </property>
      </bean>
   </property>
</bean>


 类似资料:
  • 问题内容: 我还不熟悉Spring,所以遇到了一个问题,有必要为Jackson实施我的自定义解串器。该过程在一个小型教程中进行了描述,但是,我对Spring感到困惑。我不明白,在哪里 在Spring MVC中,当通过控制器类的方法对json反序列化时执行。所以我不知道该怎么做才能用自定义解串器替换默认的解串器。 问题答案: 你没有说你在spring如何使用Jackson,所以我假设你通过和和/或注

  • 问题内容: 我还是不熟悉Spring,但遇到了一个问题,有必要为Jackson实施自定义解串器。该过程在一个小教程中进行了描述,但是,我仍然对Spring 有所了解。我不明白,在哪里 在Spring MVC中,当通过控制器类的方法对json反序列化时执行。所以我不知道该怎么做才能用自定义解串器替换默认的解串器。 任何建议最欢迎。 问题答案: 您没有说您在春季如何使用Jackson,所以我假设您通过

  • 你可以通过添加.vitepress/theme/index.js文件来开发你的自定义主题。 . ├─ docs │ ├─ .vitepress │ │ ├─ theme │ │ │ └─ index.js │ │ └─ config.js │ └─ index.md └─ package.json 在 .vitepress/theme/index.js, 你必须导出主题对象并注

  • Pandas提供API来定制其行为的某些方面,显示器主要使用。 API由五个相关功能组成。 他们是 - get_option() set_option() reset_option() describe_option() option_context() 现在让我们了解这些功能是如何运作的。 get_option(param) get_option接受一个参数并返回下面输出中给出的值 - disp

  • 概览 Electron有API来配置Windows任务栏中的应用程序图标。 This API supports both Windows-only features like creation of a JumpList, custom thumbnails and toolbars, icon overlays, and the so-called "Flash Frame" effect, a

  • icons-font-customization 这个软件(或工具) 提供了超 33,000 个开箱即用的免费 svg 图标集合和生成自己图标字体的工具。收集的所有图标都适合于私人或商业项目,还可以把不同来源的图标打包成一个字体文件,甚至可以下载任何网址的 svg 文件并进行转换打包。 各个来源图标的相关许可证信息会被自动包含在生成的 css 文件中。请先打开这个链接 所有图标 确认下包含了哪些图