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

网站建设与网页设计是什么wordpress添加og标签

网站建设与网页设计是什么,wordpress添加og标签,管理咨询公司简介,百度网站的总结目录 一、问题描述二、问题复现1.Maven依赖2.application.yml 配置3.DemoController.java4.snowflakePage.html 页面5.DemoControllerAdvice.java 监听6.问题复现 三、原因分析四、问题解决方案一方案二 一、问题描述 Java 后端使用雪花算法生成 Long 类型的主键 ID#xff0… 目录 一、问题描述二、问题复现1.Maven依赖2.application.yml 配置3.DemoController.java4.snowflakePage.html 页面5.DemoControllerAdvice.java 监听6.问题复现 三、原因分析四、问题解决方案一方案二 一、问题描述 Java 后端使用雪花算法生成 Long 类型的主键 ID在返回前端后会出现后三位精度丢失的问题。 我们写一个 ControllerAdvice 打印一下返回结果看下 我们可以看到返回结果是没有问题的但是返回到前端就会丢失两位精度。 二、问题复现 这里主要描述问题的复现过程和代码不需要的可以直接跳过。 1.Maven依赖 !-- Hutool用于生成雪花算法ID -- dependencygroupIdcn.hutool/groupIdartifactIdhutool-all/artifactIdversion5.8.16/version /dependency!-- Thymeleaf用于展示页面 -- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-thymeleaf/artifactId /dependency2.application.yml 配置 server:port: 8080spring:mvc:view:prefix: /templates/suffix: .html3.DemoController.java import cn.hutool.core.util.IdUtil; import com.demo.common.Result; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;/*** p Title DemoController* p Description 测试Controller** author ACGkaka* date 2023/4/24 18:02*/ Slf4j Controller RequestMapping(/demo) public class DemoController {GetMapping(/snowflakePage)public String snowflakePage() {return snowflakePage;}GetMapping(/snowflakeId)ResponseBodypublic ResultObject snowflakeId() {return Result.succeed().setData(IdUtil.getSnowflakeNextId());} }4.snowflakePage.html 页面 页面文件在 resources/templates/ 路径下。 !DOCTYPE html html headtitle调用接口并打印返回值/title /head body button onclickgetSnowflakeId()调用接口/button scriptfunction getSnowflakeId() {fetch(/demo/snowflakeId).then(response response.json()).then(data {console.log(data.data);document.body.innerHTML p${data.data}/p;}).catch(error console.log(error));} /script /body /html5.DemoControllerAdvice.java 监听 import org.springframework.core.MethodParameter; import org.springframework.http.MediaType; import org.springframework.http.server.ServerHttpRequest; import org.springframework.http.server.ServerHttpResponse; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;/*** p Title DemoControllerAdvice* p Description Controller增强** author ACGkaka* date 2023/4/25 21:07*/ ControllerAdvice public class DemoControllerAdvice implements ResponseBodyAdvice {Overridepublic boolean supports(MethodParameter methodParameter, Class aClass) {return true;}Overridepublic Object beforeBodyWrite(Object body, MethodParameter methodParameter, MediaType mediaType, Class aClass, ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) {System.out.println(body is: body);return body;} }6.问题复现 请求地址http://localhost:8080/demo/snowflakePage 精度丢失问题复现下面我们来分析下导致问题的原因。 三、原因分析 后端返回1703327682407702528前端接收1703327682407702500 这是因为 JS 是弱语言前端接收数字类型参数为 number最大接受长度为 16 位超出长度则会丢失精度。而 Java 的 Long 类型长度是 19 位所以传输到前端的后三位精度丢失。 解决问题的思路把 Java 中 Long 类型转换为 String 类型返回给前端。 四、问题解决 方案一 将所有 ID 使用 String 类型存储缺点是字符串做 ID 查询效率比较低。 方案二 使用注解、配置类改变序列化过程。 注解方式适用于 pojo 的 id 属性上。 import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;/*** 主键*/ TableId JsonSerialize(using ToStringSerializer.class) private Long id;配置类方式适用于全局配置。 import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;Configuration public class JacksonConfig {BeanPrimaryConditionalOnMissingBean(ObjectMapper.class)public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder){ObjectMapper objectMapper builder.createXmlMapper(false).build();// 全局配置序修改列化返回 Json 处理方案SimpleModule simpleModule new SimpleModule();// Json Long -- StringsimpleModule.addSerializer(Long.class, ToStringSerializer.instance);objectMapper.registerModule(simpleModule);return objectMapper;} }根据问题复现代码再次请求地址http://localhost:8080/demo/snowflakePage 精度丢失问题已修复。 整理完毕完结撒花~ 参考地址 1.解决雪花算法生成的ID传输前端后精度丢失https://blog.csdn.net/weixin_48841931/article/details/127966871
http://www.w-s-a.com/news/965461/

相关文章:

  • 重庆网站开发哪家好宁波网站建设caiyiduo
  • 手机网站建设价格手机网站模版更换技巧
  • 哈尔滨松北区建设局网站美妆网站建设
  • 不需要网站备案的空间网站推广的基本方法是哪四个
  • 如何检查网站死链劳动仲裁院内部网站建设
  • 江西省住房和城乡建设网站合同管理系统
  • 网站建设质量保证福州网络推广
  • 高唐网站建设公司广州南站在哪个区
  • 广西柳州网站制作公司郴州网红打卡景点
  • 做网站要固定ip拍摄公司宣传片制作
  • 专业微网站电话号码做软件难吗
  • 邢台网站制作哪家强上海做网站设计
  • 大连网站建设外贸wordpress添加文章属性
  • 商城网站建设合同范本网上哪里可以免费学编程
  • 服务器公司网站博客wordpress怎么编辑
  • 网站建设网络推广柯西乡塘网站建设
  • 企业做网站需要多少钱企业资质查询系统官网
  • 网站建设需要知识百度统计数据
  • 自已如何做网站建设通网站会员共享密码
  • 做网站学习什么wordpress 文件夹
  • 前端移动网站开发wordpress图文混排
  • 企业网站建站那种好商城类网站怎么优化
  • 手机微网站怎么制作的网上找设计师
  • 网站建设包括哪些方面学校网站 建设
  • 贵阳网站优化公司建筑设计师用什么软件
  • 网站建设的小说静态网页模板免费网站
  • 芜湖建设厅官方网站wordpress自动设置缩略图
  • 推荐网站网页湛江网站建设哪家优惠多
  • 传奇网站免费空间网店装修店面
  • 网站改版 重新收录湖南建筑信息一体化管理平台