5.1 评论服务领域开发

我们先回顾一下之前的领域模型

首先我们需要完成这两个模型的创建的,领域模型一般存放在model包下,这个完整的包路径就是

com.youkeda.comment.model

User 对象里有一个属性 pwd 。

我们都知道密码是不能泄漏的,所以我们需要在服务端输出的时候对这个属性进行处理。我们可以使用 jackson 的注解,如下:

package com.youkeda.comment.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;

import java.time.LocalDateTime;

/**
 */
public class User {

    @JsonSerialize(using = NullSerializer.class)
    private String pwd;

}

当我们配置了

@JsonSerialize(using = NullSerializer.class)

这个注解

API 在返回 JSON 结果的时候,这个字段的值会被重置为 null (相当于实际值被隐藏了),从而达到安全的作用。

不是修改了密码值,仅仅在序列化输出的时候做处理,不要理解错了

另外,对于时间我们一般都希望输出的格式是yyyy-MM-dd HH:mm:ss,我们依然可以借助 jackson 的注解来完成格式化输出

package com.youkeda.comment.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;

import java.time.LocalDateTime;

/**
 */
public class User {

    @JsonSerialize(using = NullSerializer.class)
    private String pwd;

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

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

}

请根据上面的要求,完成 User、Comment 两个类对象的开发

别忘记创建 getter、setter 方法哦

posted @ 2024-11-04 10:38  芝麻番茄  阅读(23)  评论(0)    收藏  举报