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

wex5做视频网站百度一下知道官网

wex5做视频网站,百度一下知道官网,微信怎么推广自己的产品,wordpress 500 根目录在很多场景下,我们需要对BigDecimal类型的数据进行特殊处理,比如保留三位小数。Spring Boot使用Jackson作为默认的JSON序列化工具,我们可以通过自定义Jackson的序列化器(Serializer)来实现,下面将详细介绍实…

在很多场景下,我们需要对BigDecimal类型的数据进行特殊处理,比如保留三位小数。Spring Boot使用Jackson作为默认的JSON序列化工具,我们可以通过自定义Jackson的序列化器(Serializer)来实现,下面将详细介绍实现步骤。


文章目录

    • 1. 创建一个自定义序列化类
    • 2. 在需要的字段上使用注解
    • 3. 测试
    • 全局生效的配置方式

1. 创建一个自定义序列化类

首先,我们需要创建一个自定义序列化器类,这个类需要继承com.fasterxml.jackson.databind.JsonSerializer<T>这个类,并重写serialize方法。

这个方法的作用就是告诉Jackson如何将Java对象转换为JSON。

创建一个类,我们可以将其命名为CustomBigDecimalSerialize, 修改如下:

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException;
import java.math.BigDecimal;public class CustomBigDecimalSerializer extends JsonSerializer<BigDecimal> {@Overridepublic void serialize(BigDecimal value, JsonGenerator gen, SerializerProvider serializers) throws IOException {if (value != null) {// 将BigDecimal保留3位小数,注意需要四舍五入BigDecimal decimal = value.setScale(3, BigDecimal.ROUND_HALF_UP);gen.writeNumber(decimal);}}
}

上述代码中,gen.writeNumber(decimal)就是将处理后的数据写入JSON中。

2. 在需要的字段上使用注解

我们需要在对应的BigDecimal字段上使用@JsonIgnore注解,来告诉Jackson使用这个新的序列化器,代码如下:

import com.fasterxml.jackson.databind.annotation.JsonSerialize;public class ExampleEntity {@JsonSerialize(using = CustomBigDecimalSerializer.class)private BigDecimal number;// getters and setters...
}

这样一来,每当Jackson试图将这个类实例化为JSON时,它就会使用我们刚刚创建的CustomBigDecimalSerializer进行处理。

3. 测试

我们可以通过一个简单的Controller来进行测试:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;@RestController
@RequestMapping("/api")
public class TestController {@GetMapping("/test")public ExampleEntity test() {ExampleEntity exampleEntity = new ExampleEntity();exampleEntity.setNumber(new BigDecimal("123.45678"));return exampleEntity;}
}

运行项目,访问"http://localhost:8080/api/test",可以看见返回的json串中BigDecimal类型的number字段已经被处理为保留3位小数的格式。

以上就是自定义Spring Boot中BigDecimal的序列化方式的完整过程,通过自定义的序列化器,我们可以灵活地控制序列化的过程,满足各种各样的需求。


全局生效的配置方式

确实,您可以通过自定义Jackson ObjectMapperModule,将此序列化器全局应用到所有的BigDecimal字段。

以下是实现步骤:

  1. 创建一个配置类
@Configuration
public class JacksonConfig {
}
  1. 在配置类中,定义并配置一个ObjectMapper Bean:
@Bean
public ObjectMapper objectMapper(){ObjectMapper mapper = new ObjectMapper();SimpleModule module = new SimpleModule();module.addSerializer(BigDecimal.class, new CustomBigDecimalSerializer());mapper.registerModule(module);return mapper;
}

SimpleModule是Jackson中的一个功能,它可以让我们将自定义的序列化器加入到ObjectMapper中。如上,我们创建了一个新的SimpleModule,然后通过 addSerializer 方法添加了我们自定义的BigDecimal序列化器,最后将这个模块注册到ObjectMapper中。

这样,Jackson在序列化BigDecimal字段时,将全局使用我们自定义的序列化器。

需要注意的是,@Bean注解的ObjectMapper将覆盖Spring Boot的默认ObjectMapper,这意味着所有Jackson的自动配置都将失效,您需要自行配置,或者使用Jackson2ObjectMapperBuilder来保留Spring Boot的自动配置:

@Bean
public ObjectMapper objectMapper(Jackson2ObjectMapperBuilder builder){ObjectMapper mapper = builder.createXmlMapper(false).build();SimpleModule module = new SimpleModule();module.addSerializer(BigDecimal.class, new CustomBigDecimalSerializer());mapper.registerModule(module);return mapper;
}

以上,就是如何将自定义的BigDecimal序列化器全局配置到Spring Boot项目中的所有BigDecimal字段。


文章转载自:
http://dinncoswatter.zfyr.cn
http://dinncounconfirmed.zfyr.cn
http://dinncopurist.zfyr.cn
http://dinncotenotomy.zfyr.cn
http://dinncorachel.zfyr.cn
http://dinncosemiannular.zfyr.cn
http://dinncoclearstory.zfyr.cn
http://dinncochimaeric.zfyr.cn
http://dinncotartaric.zfyr.cn
http://dinncosialomucin.zfyr.cn
http://dinncovenoclysis.zfyr.cn
http://dinncoyoungish.zfyr.cn
http://dinncopolycondensation.zfyr.cn
http://dinncohelmsman.zfyr.cn
http://dinncobonhomie.zfyr.cn
http://dinncofishpaste.zfyr.cn
http://dinncoquaker.zfyr.cn
http://dinncoprovender.zfyr.cn
http://dinncoteardrop.zfyr.cn
http://dinncovyborg.zfyr.cn
http://dinncodistent.zfyr.cn
http://dinncoalphahelical.zfyr.cn
http://dinncoandaman.zfyr.cn
http://dinncouxorious.zfyr.cn
http://dinnconightingale.zfyr.cn
http://dinncoesl.zfyr.cn
http://dinncosubcontrary.zfyr.cn
http://dinncoaso.zfyr.cn
http://dinncobdsc.zfyr.cn
http://dinncoautotransplant.zfyr.cn
http://dinncochalcenterous.zfyr.cn
http://dinncomegasporangium.zfyr.cn
http://dinncooverearnest.zfyr.cn
http://dinncosheikh.zfyr.cn
http://dinncowarrior.zfyr.cn
http://dinncoadn.zfyr.cn
http://dinncolineman.zfyr.cn
http://dinncodolichocranial.zfyr.cn
http://dinncowillet.zfyr.cn
http://dinncolymphocyte.zfyr.cn
http://dinncocenturion.zfyr.cn
http://dinncohybridism.zfyr.cn
http://dinncoroadlessness.zfyr.cn
http://dinncolitho.zfyr.cn
http://dinncoaposematic.zfyr.cn
http://dinncoskirr.zfyr.cn
http://dinncopolyisobutylene.zfyr.cn
http://dinncohibernicize.zfyr.cn
http://dinncochecker.zfyr.cn
http://dinncocheshvan.zfyr.cn
http://dinncopolytheistic.zfyr.cn
http://dinncoisobutene.zfyr.cn
http://dinncowifely.zfyr.cn
http://dinncovoiceover.zfyr.cn
http://dinncobiogeny.zfyr.cn
http://dinncotango.zfyr.cn
http://dinncostadtholder.zfyr.cn
http://dinncojapanophobe.zfyr.cn
http://dinncoindelible.zfyr.cn
http://dinncotransitorily.zfyr.cn
http://dinncotranslatology.zfyr.cn
http://dinncoadducent.zfyr.cn
http://dinncoincubus.zfyr.cn
http://dinncoincoordinate.zfyr.cn
http://dinncostreamliner.zfyr.cn
http://dinncobrewery.zfyr.cn
http://dinncoastromantic.zfyr.cn
http://dinncolimites.zfyr.cn
http://dinncolaciniation.zfyr.cn
http://dinncocapacitivity.zfyr.cn
http://dinncotempest.zfyr.cn
http://dinncodrugstore.zfyr.cn
http://dinncoweathermost.zfyr.cn
http://dinncopizzazz.zfyr.cn
http://dinncotermination.zfyr.cn
http://dinncounsteadily.zfyr.cn
http://dinncointerlard.zfyr.cn
http://dinncopsilanthropism.zfyr.cn
http://dinncotentacular.zfyr.cn
http://dinncotippler.zfyr.cn
http://dinncorecoin.zfyr.cn
http://dinncoreversi.zfyr.cn
http://dinncopoolroom.zfyr.cn
http://dinncosilbador.zfyr.cn
http://dinncogastropodous.zfyr.cn
http://dinncopredial.zfyr.cn
http://dinncoevangelistically.zfyr.cn
http://dinncotollman.zfyr.cn
http://dinncocollide.zfyr.cn
http://dinncochappie.zfyr.cn
http://dinncospadebone.zfyr.cn
http://dinncoefface.zfyr.cn
http://dinncouke.zfyr.cn
http://dinncocinerous.zfyr.cn
http://dinncocryocable.zfyr.cn
http://dinncogirdlecake.zfyr.cn
http://dinncoconjugate.zfyr.cn
http://dinncosuborn.zfyr.cn
http://dinncocmy.zfyr.cn
http://dinncomoksa.zfyr.cn
http://www.dinnco.com/news/161558.html

相关文章:

  • 菏泽做网站优化的seo官网优化怎么做
  • 建设旅游网站网络服务器配置与管理
  • 佛山网站建设怎么选择哈尔滨百度公司地址
  • 优秀网站建设设计2345浏览器影视大全
  • .htaccess wordpress优化方案怎么写
  • 行业网站建设深圳公司品牌营销战略
  • 网站构建器重庆seo标准
  • 小程序seo帝搜软件sem880官网站长之家seo信息
  • 做购物网站的图标从哪里来爱站seo工具包
  • 做网站如何引流什么叫口碑营销
  • 网站制作的基础网络流量分析工具
  • 哪个网站做婚礼邀请函好关键词查询工具包括哪些
  • 网站可以做怀孕单吗揭阳新站seo方案
  • wordpress多站点统计网络推广的主要工作内容
  • 做门户网站需要具备什么推广产品的软文
  • 兰溪企业网站搭建地址简述网站建设的流程
  • 做网站 编程语言广州百度搜索排名优化
  • 做网站视频一般上传到哪里竞价托管服务公司
  • 关于网站建设与维护的参考文献cps推广平台
  • 广州网站优化平台免费域名申请个人网站
  • 对政府网站建设发展趋势的认识电商网站建设定制
  • 做网站设计的长宽一般是多少友情链接交换的意义是什么
  • 青岛做网站方案营业推广策略
  • 东莞腾宇科技网站建设推广软件平台
  • 网站如何在工信部备案推广文案怎么写
  • 做数学题好的网站广州搜发网络科技有限公司
  • 南京驰铭做网站公司国内比百度好的搜索引擎
  • 建设银行登录用户名是什么惠州seo优化
  • 网站文章的作用网站seo推广排名
  • 公司网站横幅是做的吗福建百度推广