Martian 3.2.18 发布,弃用 FastJson - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Joker123456789
V2EX    Java

Martian 3.2.18 发布,弃用 FastJson

  •  
  •   Joker123456789 2021-03-20 18:45:52 +08:00 3405 次点击
    这是一个创建于 1673 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本次更新如下

    1. 开放 JWT 秘钥配置权限
    2. 丢弃 FastJson 改用 Jackson

    JWT 秘钥配置权限

    在配置类重写此方法即可

    @Override public JWTConfig jwtConfig() { JWTConfig jwCOnfig= new JWTConfig(); // token 失效时间单位,默认: 秒 jwtConfig.setCalendarField(Calendar.SECOND); // token 失效时间,默认: 86400 秒 jwtConfig.setCalendarInterval(86400); // 秘钥,默认: 一个 UUID jwtConfig.setSecret(UUID.randomUUID().toString()); return jwtConfig; } 

    改用 Jackson 后有哪些影响

    除了实体类映射有影响之外,其他地方均不受影响

    一、实体类的字段映射

    开发中经常出现这种情况,实体类的命名规范是驼峰,而数据库字段是下划线分割,所以会出现对不上的情况,这个时候我们可以用这个注解来解决:

    com.fasterxml.jackson.annotation.JsonProperty 

    在实体类的字段上加上这个注解,设置 name 属性为数据库字段名

    public class TestPO{ @JsonProperty(value = "数据库里的 name 字段名") private String name; @JsonProperty(value = "数据库里的 age 字段名") private String age; @JsonProperty(value = "数据库里的 id 字段名") private int id; } 

    二、避免字段不一致而报错

    • 有时候,我们查询出来的结果集里面的字段,在实体类里面会找不到
    • 比如,实体类的字段是 a, b 但是结果集里面的字段是 a, b, c,这个 c 在实体类里不存在
    • 这种情况下会出现异常,所以为了避免这个异常的出现,可以用到这个注解:
    com.fasterxml.jackson.annotation.JsonIgnoreProperties 

    在实体类上加上这个注解即可

    @JsonIgnoreProperties(ignoreUnknown = true) public class TestPO{ } 

    三、指定日期格式

    当实体类里面出现了 Date 类型,在执行数据库操作的时候会出异常,所以需要指定一个日期格式, 指定格式可以用这个注解:

    com.fasterxml.jackson.annotation.JsonFormat 

    在实体类上加上这个注解即可

    @JsonIgnoreProperties(ignoreUnknown = true) public class TestPO{ @JsonProperty("create_time") @JsonFormat(pattern = "yyyy-MM-dd HHss") private Date createTime; } 

    实体类需要写 get/set 方法,或者用 lombok 注解

    更多信息可以前往官网查看

    http://mars-framework.com/

    8 条回复    2021-03-27 16:12:13 +08:00
    GM
        1
    GM  
       2021-03-20 18:50:58 +08:00
    你这到底叫 Martian,还是叫 mars ?
    Joker123456789
        2
    Joker123456789  
    OP
       2021-03-20 19:11:29 +08:00
    @GM 以前叫 mars,后来改成了 Martian, 火星改成了火星人, 两个名字还算有点联系。 所以域名 以及 项目内部的模块名称 都没改,延续了下来。
    FucUrFrd
        3
    FucUrFrd  
       2021-03-20 21:31:43 +08:00 via Android
    你之前用阿里的我就笑了
    Joker123456789
        4
    Joker123456789  
    OP
       2021-03-20 21:48:42 +08:00
    @FucUrFrd 各有取舍吧,fastjson 也并非一无是处。 有句话说的好啊, 只要做一件坏事,就会被记一辈子。
    no1xsyzy
        5
    no1xsyzy  
       2021-03-21 00:07:55 +08:00
    @Joker123456789 不是做一件坏事,而是做坏一件事
    zed1018
        6
    zed1018  
       2021-03-21 13:31:39 +08:00
    你这里有些事情做的比较繁琐了,比如忽略 unknown 字段,字段名称风格,常用日期格式都可以直接在构造 mapper 的时候注册或者设定,不需要每个地方都去注解
    siweipancc
        7
    siweipancc  
       2021-03-25 09:06:46 +08:00 via iPhone
    纯新人,这是 jackson 入门教程吗:D
    ychost
        8
    ychost  
       2021-03-27 16:12:13 +08:00
    FastJSON 还行哇,基本就用最简单的序列化 /反序列化,关闭 autoType
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2545 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 02:29 PVG 10:29 LAX 19:29 JFK 22:29
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86