Java数据类(JavaBean)的注解化解决方案:@Data(Lombok实现)

Java数据类(JavaBean)的注解化解决方案:@Data(Lombok实现)

1. 使用效果

在这里插入图片描述

2. 背景

Java数据类,即JavaBean,需要写 set、get、hashCode、toString 等方法。

常规方式存在两个问题:

  1. 当新增一个字段时,需要对应新增set和get方法,修改hashCode、toString方法。容易只新增了字段,没对应新增和修改函数,导致错误。比如,返回响应对应的数据类,新增了一个字段,但是没有新增set和get方法,那这个字段就会一直是空。
  2. 写这些方法,比较繁琐,费时费力。

3. 解决方案

Java数据类(JavaBean)的注解化解决方案。

实现原理,是通过编译器插件,在编译期,为添加了 数据类 注解的数据类,自动生成set、get等方法。

本教程通过Lombok实现,通过@Data注解标识数据类,因此也就要求Java集成开发环境需要安装Lombok插件。

4. 使用步骤

  1. 装插件
  2. 加依赖
  3. 加注解

4.1. 装插件

IDEA中的较高版本(从2020.3版本起),已经自动集成了Lombok,无需额外安装插件。

Eclipse及其衍生IDE(如SpringToolSuite4等),需要使用Lombok安装包,手动安装Lombok插件到Eclipse中。

安装方法参考:Lombok插件安装(Eclipse/SpringToolSuite4)(Windows和Mac)

4.2. 加依赖

pom.xml文件中,添加依赖

		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>

4.3. 加注解

使用 @Data 注解,加在数据类的定义处。

package com.example.lombok;

import lombok.Data;

@Data
public class Student {
	private Integer id;
	private String name;
	private Integer gender;
	private Integer classId;
}

5. 可选配置

如果想要在 Maven 打包的时候,Lombok 不被打包,可使用如下配置。

这个配置不写,不影响 Lombok 正常使用。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <excludes>
                    <exclude>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                    </exclude>
                </excludes>
            </configuration>
        </plugin>
    </plugins>
</build>

6. 调用示例

对Java数据类的实例,调用set和get方法等,都是能够正常调用的。

package com.example.lombok;

public class Test {

	public static void main(String[] args) {
		Student student = new Student();
		student.setId(1001);
		student.setName("张三");
		System.out.println("姓名:" + student.getName());
		System.out.println("student:" + student);
	}

}

运行结果:
在这里插入图片描述

7. 示例项目(Gitee开源)

Lombok示例项目(Gitee开源)

8. Lombok官网地址

Lombok官网地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宋冠巡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值