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

spring中LocalDateTime 转成字符串的时候注意事项

@ApiOperation("查询课程发布信息")
@ResponseBody
@GetMapping("/r/coursepublish/{courseId}")
public CoursePublish getCoursepublish(@PathVariable("courseId") Long courseId) {
    CoursePublish coursePublish = coursePublishService.getCoursePublish(courseId);
     return coursePublish;
}

 这是我们controller中的方法,是基于restfu风格的接口,是基于http请求,当mapper层调用方法相应结果其实是一个json字符串 但是我们spring可以自动为我们进行封装成对象,这时候我们的localdatetime这个字段封装的时候要指定格式要不然会出错误,对于我们的http请求我们在base工程中进行配置日期格式,这样其他工程也会进行依赖。配置如下

package com.xuecheng.base.config;import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;@Configuration
public class LocalDateTimeConfig {/** 序列化内容*   LocalDateTime -> String* 服务端返回给客户端内容* */@Beanpublic LocalDateTimeSerializer localDateTimeSerializer() {return new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));}/** 反序列化内容*   String -> LocalDateTime* 客户端传入服务端数据* */@Beanpublic LocalDateTimeDeserializer localDateTimeDeserializer() {return new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));}// 配置@Beanpublic Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {return builder -> {builder.serializerByType(LocalDateTime.class, localDateTimeSerializer());builder.deserializerByType(LocalDateTime.class, localDateTimeDeserializer());};}}

 这样就解决了我们controller的自动转化问题,但是现在有一个问题就是我们在一个没有依赖base工程的项目中使用feign调用我们的接口,这时候也会出现这个问题,解决方法是

在进行feign远程调用时会将字符串转成LocalDateTime,在CoursePublish 类中LocalDateTime的属性上边添加如下代码:

Java
@JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss")

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

相关文章:

  • vue数组对象中按某一字段排序
  • yolov5和yolov7部署的研究
  • 【JavaEE进阶】拦截器与统一功能处理
  • 2023年智慧政务一网通办云平台顶层设计与建设方案PPT
  • 安防监控/视频汇聚平台EasyCVR调用rtsp地址返回的IP不正确是什么原因?
  • 媒体服务器与视频服务器有什么区别
  • 菜鸟教程《Python 3 教程》笔记(11):循环语句
  • 【DevOps视频笔记】8. Jenkins 配置
  • C# 在Color[] colorTable中快速找到Color的索引位置
  • go学习笔记 炒土豆丝
  • FPGA VR摄像机-拍摄和拼接立体 360 度视频
  • vue集成mars3d后,basemaps加不上去
  • 油管视频直接生成PPT的AI工具!剖析c.ai和Pi的用户需求;独立创业者的操作指南;广告大佬的三个AI绘画实战 | ShowMeAI日报
  • WebSocket- 前端篇
  • 如何在 Python 中将图像转换为 PDF
  • 使用python编写脚本测试目标主机的TCP端口连通性
  • 华为云云服务器评测|基于华为云云耀云服务器L实例开展性能评测,例如 MySQL、Clickhouse、Elasticsearch等等
  • Git分布式版本控制系统与github
  • 基于Java+SpringBoot+Vue前后端分离中国陕西民俗网设计和实现
  • CSS3D+动画
  • list对象中如何根据对象中某个属性去重使用Java8流实现
  • 2023 在Windows上的安装Faiss-GPU(使用anaconda)
  • HTML及CSS入门及精通
  • frp实现二级代理
  • Vue组件设置背景色
  • Java+Github+Jenkins部署
  • vue使用命令npm install 报错 cb() never called!
  • 什么是LatexEasy及其在数学排版中的作用
  • axios 和fetch的取舍,以及比较
  • K-Means(K-均值)聚类算法理论和实战