第09章—使用Lombok插件
spring boot 系列学习记录:http://www.cnblogs.com/jinxiaohang/p/8111057.html
码云源码地址:https://gitee.com/jinxiaohang/springboot
〇、介绍Lombok
我们在开发过程中,通常都会定义大量的JavaBean,然后通过IDE去生成其属性的构造器、getter、setter、equals、hashcode、toString,每个javaBean都需要写,即使是使用IDE快速创建,会不会觉得很麻烦,而且当要对某个属性进行改变时,比如命名、类型等,都需要重新去生成上面提到的这些方法,那Java中有没有一种方式能够避免这种重复的劳动呢?
答案是有,我们来看一下下面这张图,左面是一个简单的JavaBean,在类上加上了@Data,等同右面一大串的代码。
lombok是一款可以精减java代码、提升开发人员生产效率的辅助工具,利用注解在编译期自动生成setter、getter、toString()、constructor之类的代码。
一、引入依赖
如果是新建项目的,可以在这页添加依赖:
如果是原有项目,还可以在pom.xml 引入Lombok的依赖:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency>
二、安装插件
使用的编辑器是IDEA,所以介绍的是在IDEA上安装插件。
- File > Settings > Plugins
- 点击 Browse repositories
- 搜索 Lombok Plugin
- 点击 Install
- 重启 IDEA
三、编写实体类
import lombok.Data; @Data public class UserInfo { private String userId; private String userName; private String password; }
观察structure栏,是有Getters、 Setters方法的。
四、测试
@RunWith(SpringRunner.class) @SpringBootTest public class UserInfoTest { @Test public void user(){ UserInfo userInfo = new UserInfo(); userInfo.setUserId("1"); userInfo.setUserName("2"); userInfo.setPassword("3"); System.out.println(userInfo.toString()); } }
五、总结
@Getter / @Setter
可以作用在类上和属性上,放在类上,会对所有的非静态(non-static)属性生成Getter/Setter方法,放在属性上,会对该属性生成Getter/Setter方法。并可以指定Getter/Setter方法的访问级别。
@EqualsAndHashCode
默认情况下,会使用所有非瞬态(non-transient)和非静态(non-static)字段来生成equals和hascode方法,也可以指定具体使用哪些属性。
@ToString
生成toString方法,默认情况下,会输出类名、所有属性,属性会按照顺序输出,以逗号分割。
@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor
无参构造器、部分参数构造器、全参构造器,当我们需要重载多个构造器的时候,Lombok就无能为力了。
@Data
@ToString, @EqualsAndHashCode, 所有属性的@Getter, 所有non-final属性的@Setter和@RequiredArgsConstructor的组合,通常情况下,我们使用这个注解就足够了。