当前位置: 首页 > news >正文

自定义 Jackson 的 ObjectMapper, springboot多个模块共同引用,爽

springboot多个模块共同引用自定义ObjectMapper 🚃

    • 统一配置
    • 示例

自定义 Jackson 的 ObjectMapper更改时区为东八区, 优点是在多个模块中都可以使用同一种方式来进行配置,方便维护和修改

统一配置

假设有一个 Spring Boot 项目,包含多个模块,每个模块都有自己的 Java Bean 需要进行序列化和反序列化。如果每个模块都单独配置 Jackson 的 ObjectMapper,那么当需要修改时区或其他配置时,就需要修改每个模块的配置文件。这样做会导致代码冗余、配置不一致等问题。

而如果将 Jackson 的 ObjectMapper 配置放在一个公共的模块中,所有需要使用的模块都引用这个公共模块的配置,那么当需要修改配置时,只需要修改这个公共模块的配置,就可以同时影响到所有使用该配置的模块。这样就可以提高代码复用性和维护性,避免出现配置不一致的情况。

示例

可以将 Jackson 的 ObjectMapper 配置放在一个公共的模块中,让其他模块来引用它。以下是一些步骤:

  1. 在公共模块中创建一个类来配置 ObjectMapper,并将其注入 Spring 容器中。例如,创建一个名为 JacksonObjectMapperConfig 的类,并使用 @Configuration 注解将其标记为配置类:
@Configuration
public class JacksonObjectMapperConfig {@Beanpublic ObjectMapper objectMapper() {ObjectMapper objectMapper = new ObjectMapper();// 配置 ObjectMapperreturn objectMapper;}}
  1. 在其他模块中,使用 @Import 注解来引入公共模块中的配置类。例如,假设其他模块的配置类为 MyAppConfig,则可以在其上方添加 @Import 注解,引入 JacksonObjectMapperConfig 类:
@Configuration
@Import(JacksonObjectMapperConfig.class)
public class MyAppConfig {// 其他配置代码}
  1. 在其他模块的代码中,可以使用 @Autowired 注解来注入配置好的 ObjectMapper。例如,假设需要在一个 Service 类中使用 ObjectMapper,可以添加 @Autowired 注解来注入:
@Service
public class MyService {@Autowiredprivate ObjectMapper objectMapper;// 其他代码}

通过将 ObjectMapper 的配置放在一个公共的模块中,所有需要使用的模块都可以引用该配置,从而实现统一的序列化和反序列化方式,方便维护和修改。

http://www.lryc.cn/news/55969.html

相关文章:

  • 【面试】Redis面试题
  • 前端后端交互系列之原生Ajax的使用
  • openGauss 5.0企业版主从部署,实战狂飙
  • Vue中props组件和slot标签的区别
  • 基于Windows下VSCode搭建Vue开发环境
  • Android开发 Dialog对话框 DatePickerDialog
  • 开心档开发入门网之C++ Web 编程
  • C# 和 VB .NET 的纯 FFmpeg 包装器:CSFFmpeg Crack
  • python外篇(序列化和非序列化)
  • Linux总结(二)
  • 【4.1】Socket编程、TCP挥手
  • 【竞赛经历】CSDN第41期竞赛题解
  • 【Linux学习】信号——预备知识 | 信号产生 | 核心转储
  • 2023中国程序员薪酬报告出炉,你拖后腿了吗?
  • Mac下Python3安装及基于Idea开发
  • 2017年 团体程序设计天梯赛——题解集
  • “唯一靶点”的华堂宁会成控糖爆品吗?
  • Spring《三》DI依赖注入
  • leetcode 面试题 17.06. 2出现的次数
  • CMake入门教程【基础篇】5.configure_file构建配置
  • 软件开发可行性分析——健康食谱小程序
  • ShuffleNet V1 对花数据集训练
  • 测试人员转型是大势所趋:我的10年自动化测试经验分享
  • Pandas高级操作,建议收藏(一)
  • ASIC-WORLD Verilog(1)一日Verilog
  • 数据治理工具项目投标书技术部分-V1.6
  • ARMv8如何读取cache line中MOESI 状态以及Tag信息(tag RAM dirty RAM)
  • 学习通学习--脚本
  • C盘的深度清理
  • 43掌握自动化运维工具 Puppet 的基本用法,包括模块编写、资源管理