Martian 3.2.18 发布,弃用 FastJson

2021-03-20 18:45:52 +08:00
 Joker123456789

本次更新如下

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

JWT 秘钥配置权限

在配置类重写此方法即可

@Override
public JWTConfig jwtConfig() {
     JWTConfig jwtConfig = 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;

}

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

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 HH🇲🇲ss")
    private Date createTime;

}

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

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

http://mars-framework.com/

3025 次点击
所在节点    Java
8 条回复
GM
2021-03-20 18:50:58 +08:00
你这到底叫 Martian,还是叫 mars ?
Joker123456789
2021-03-20 19:11:29 +08:00
@GM 以前叫 mars,后来改成了 Martian, 火星改成了火星人, 两个名字还算有点联系。 所以域名 以及 项目内部的模块名称 都没改,延续了下来。
FucUrFrd
2021-03-20 21:31:43 +08:00
你之前用阿里的我就笑了
Joker123456789
2021-03-20 21:48:42 +08:00
@FucUrFrd 各有取舍吧,fastjson 也并非一无是处。 有句话说的好啊, 只要做一件坏事,就会被记一辈子。
no1xsyzy
2021-03-21 00:07:55 +08:00
@Joker123456789 不是做一件坏事,而是做坏一件事
zed1018
2021-03-21 13:31:39 +08:00
你这里有些事情做的比较繁琐了,比如忽略 unknown 字段,字段名称风格,常用日期格式都可以直接在构造 mapper 的时候注册或者设定,不需要每个地方都去注解
siweipancc
2021-03-25 09:06:46 +08:00
纯新人,这是 jackson 入门教程吗:D
ychost
2021-03-27 16:12:13 +08:00
FastJSON 还行哇,基本就用最简单的序列化 /反序列化,关闭 autoType

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/763498

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX