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

这篇具有很好参考价值的文章主要介绍了自定义 Jackson 的 ObjectMapper, springboot多个模块共同引用,爽。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

统一配置

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

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

示例

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

  1. 在公共模块中创建一个类来配置 ObjectMapper,并将其注入 Spring 容器中。例如,创建一个名为 JacksonObjectMapperConfig 的类,并使用 @Configuration 注解将其标记为配置类:
@Configuration
public class JacksonObjectMapperConfig {

    @Bean
    public ObjectMapper objectMapper() {
        ObjectMapper objectMapper = new ObjectMapper();
        // 配置 ObjectMapper
        return objectMapper;
    }

}

  1. 在其他模块中,使用 @Import 注解来引入公共模块中的配置类。例如,假设其他模块的配置类为 MyAppConfig,则可以在其上方添加 @Import 注解,引入 JacksonObjectMapperConfig 类:
@Configuration
@Import(JacksonObjectMapperConfig.class)
public class MyAppConfig {

    // 其他配置代码

}

  1. 在其他模块的代码中,可以使用 @Autowired 注解来注入配置好的 ObjectMapper。例如,假设需要在一个 Service 类中使用 ObjectMapper,可以添加 @Autowired 注解来注入:
@Service
public class MyService {

    @Autowired
    private ObjectMapper objectMapper;

    // 其他代码

}

通过将 ObjectMapper 的配置放在一个公共的模块中,所有需要使用的模块都可以引用该配置,从而实现统一的序列化和反序列化方式,方便维护和修改。文章来源地址https://www.toymoban.com/news/detail-404313.html

到了这里,关于自定义 Jackson 的 ObjectMapper, springboot多个模块共同引用,爽的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Django 用相对路径方式引用自定义模块 或 文件

    Django的文件夹结构 projectName/websiteName/appName manage.py 所在路径为:D:/projectA/website1/manage.py views.py 所在路径为:D:/projectA/website1/app1/views.py D:/projectA/website1/app1/module1.py 如果要引用自定义模块,引用自定义的模块  from .A import AAA    (在 if __name__ == \\\"__main__\\\" 中会报错) from A import

    2024年02月09日
    浏览(33)
  • springboot扫描不到其他模块下定义的Bean

    springboot默认是不能扫描到其他依赖模块定义的Bean的。(默认扫描的是启动类所在包下的所有Bean)也就是在项目启动的不能将其他模块的Bean加载到spring容器 项目之间要有联系性 admin模块为springboot框架,其他的只是普通的maven项目,admin 默认是无法扫描到 framework模块里面的

    2023年04月26日
    浏览(25)
  • Springboot 多模块(A依赖B)集成mybatis , mybatis.mapper-locations 配置多个mapper路径配置

    最近在用SpringBoot 多模块 集成mybatis,模块A 依赖于模块B, 模块A 和模块B 各自有各自的业务逻辑和mapper 文件,模块A 的mapper xml 文件存放在resource 下的 mybatisMapper 文件夹,模块B 的mapper xm 文件存放在 B 模块的resource 下的 mapper 文件夹, 打包时以A 模块为主,B 以jar 包方式被A 依赖

    2024年02月03日
    浏览(39)
  • jackson自定义反序列化器JsonDeserializer

    JSON序列化:将实体类对象转为JSON字符串 JSON反序列化:将JSON字符串转为实体类 jackson作为Spring MVC和Spring Boot默认的JSON解析器,其与gson的工作原理不一样。 jackson通过调用实体类每个属性get/set方法进行注入,而gson则是通过设置每个属性为可访问后注入 。 jackson工作原理大致如

    2024年02月06日
    浏览(28)
  • jackson自定义序列化反序列化

    自定义序列化 序列化主要作用在返回数据的时候 以BigDecimal统一返回3位小数为例 自定义序列化处理类 继承jackson的 JsonSerializer 类,重写 serialize 方法 使用的时候,可以直接使用Jackson的 @JsonSerialize 注解 自定义反序列化 接收前端传入数据 继承 JsonDeserializer 类,重写 deserializ

    2024年02月13日
    浏览(35)
  • SpringBoot -- 请求数据多态映射(jackson)

    有些情况下,服务端提供了一个抽象类及其多个实现类,当前端传递 json 数据到后端时,我们希望映射得到的对象数据是根据某个特征区分开的具体的实现类对象。 实现方式 可以通过 jackson 实现序列化及反序列化,并使用 jackson 包中的 @JsonTypeInfo @JsonSubTypes 这两个注解,去实

    2024年02月06日
    浏览(26)
  • Rust之泛型、特性和生命期(三):Traits:定义共同的行为

    Windows 10 Rust 1.70.0    VS Code 1.79.2 这里继续沿用上次工程rust-demo Trait定义了一个特定类型所具有的功能,并且可以与其他类型共享。我们可以使用特质以抽象的方式来定义共享行为。我们可以使用特质的界限来指定一个通用类型可以是任何具有某些行为的类型。  注意:trait

    2024年02月09日
    浏览(42)
  • Springboot Jackson 序列化与反序列化配置

    可解决在使用默认反序列化Jackson时,LocalDateTime类型的请求参数反序列化失败的问题

    2024年02月02日
    浏览(35)
  • 【springboot报错】nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException

    java springboot开发api时的报错,没复制全,懒得重现 问题是在于return的这个class里面没有针对responseBody做处理,意思是要告诉responseBody里对应的那些key在somReturnClass这个类里对应的key是啥(虽然名字一样,但代码不会自动帮你对应上) 解决方法: 在someReturnClass加上@Getter和@Set

    2024年02月11日
    浏览(47)
  • Xcode15一个xcworkspace管理多个xcodeproj从零开始,一个主程序,多个子程序,一个主程序引用多个静态库

    创建主程序:MainProject 目录结构: sandbox设置成NO:否则Xcode15不能运行 创建子程序 创建Framework 创建多个子程序后的目录结构 在主程序的Podfile中添加代码 在MainProject目录下Pod install 在OneProject中创建Public 类 主程序中添加引用:TARGETS-Build Phases - Link Binary With Libraries  在主程序

    2024年01月23日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包