Java单体应用 - 项目实战(后台) - 03.后台账户管理 - 12.使用Lombok

原文地址:http://www.work100.net/training/monolithic-project-iot-cloud-admin-manager-lombok.html
更多教程:光束云 - 免费课程

使用Lombok

序号 文内章节 视频
1 概述 -
2 安装Lombok插件 -
3 配置Lombok插件 -
4 引入依赖 -
5 重构代码 -
6 实例源码 -

请参照如上章节导航进行阅读

1.概述

Lombok项目是一个Java库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码。

仅五个字符(@Data)就可以替换数百行代码从而产生干净,简洁且易于维护的Java类。

2.安装Lombok插件

IntelliJ IDEA 中引入 Lombok 插件,打开 Plugins 菜单,搜索并安装:

3.配置Lombok插件

配置已安装的 Lombok 插件,设置如下:

4.引入依赖

要使用 Lombok 则需要引入如下依赖:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.8</version>
</dependency>

我们在 iot-cloud-dependenciesiot-cloud-commons 项目中添加上面的依赖。

5.重构代码

修改 AbstractBaseDomain 类

修改 AbstractBaseDomain 类文件,为其增加 @Data 注解,代码如下:

package net.work100.training.stage2.iot.cloud.commons.dto;

import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>Title: AbstractBaseDomain</p>
 * <p>Description: </p>
 *
 * @author liuxiaojun
 * @date 2020-03-14 14:44
 * ------------------- History -------------------
 * <date>      <author>       <desc>
 * 2020-03-14   liuxiaojun     初始创建
 * -----------------------------------------------
 */
@Data
public abstract class AbstractBaseDomain implements Serializable {
    private Long id;
    private Date created;
    private Date updated;
}

添加 @Data 注解后,GetterSetter 代码就不要实现了。

修改 AuthManager 类

修改 AuthManager 类文件,为其增加 @Data 注解,代码如下:

package net.work100.training.stage2.iot.cloud.domain;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import net.work100.training.stage2.iot.cloud.commons.dto.AbstractBaseDomain;

import java.util.Date;

/**
 * <p>Title: AuthManager</p>
 * <p>Description: 管理员账户表</p>
 * <p>Url: http://www.work100.net/training/monolithic-project-iot-cloud-admin.html</p>
 *
 * @author liuxiaojun
 * @date 2020-02-23 22:42
 * ------------------- History -------------------
 * <date>      <author>       <desc>
 * 2020-02-23   liuxiaojun     初始创建
 * -----------------------------------------------
 */
@Data
public class AuthManager extends AbstractBaseDomain {

    private String userKey;
    private String userName;

    @JsonIgnore
    private String password;
    /**
     * 状态:0=inactive, 1=active, 2=locked, 3=deleted
     */
    private int status;
    private boolean superuser;
    /**
     * 角色:admin, editor
     */
    private String roles;
    private Date modifyPasswordTime;
}

对于 账户 类,我们不期望将 password 暴露到客户端,这时我们可以使用如下注解:

@JsonIgnore
private String password;

其它对象的修改请自行完成

6.实例源码

实例源码已经托管到如下地址:


上一篇:菜单优化

下一篇:Spring Validation


如果对课程内容感兴趣,可以扫码关注我们的 公众号QQ群,及时关注我们的课程更新

posted @ 2020-04-01 15:28  光束云  阅读(114)  评论(0编辑  收藏  举报