SpringBoot使用LomBok的示例代码
lombok是什么?它是一个能帮我们消除那些必须要写但是重复的代码,比如setter,getter,构造函数之类的方法。
首先先简单说一下idea安装lombok,有2种方法:
1.直接从下载,然后放到idea安装文件下面的plugins,然后重启idea
2.在idea的settings(windows)或者preferences(mac),下找到plugins菜单,点击browse repositories,如图
然后搜索lombok,点击右侧下载,下载完成重启即可,如图
新建项目,在pom文件中加入lombok依赖,完整pom如下:
<?xml version="1.0" encoding="utf-8"?> <project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <groupid>com.dalaoyang</groupid> <artifactid>springboot_lombok</artifactid> <version>0.0.1-snapshot</version> <packaging>jar</packaging> <name>springboot_lombok</name> <description>springboot_lombok</description> <parent> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-parent</artifactid> <version>1.5.9.release</version> <relativepath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceencoding>utf-8</project.build.sourceencoding> <project.reporting.outputencoding>utf-8</project.reporting.outputencoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> </dependency> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-devtools</artifactid> <scope>runtime</scope> </dependency> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-test</artifactid> <scope>test</scope> </dependency> <dependency> <groupid>org.projectlombok</groupid> <artifactid>lombok</artifactid> <version>1.16.20</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-maven-plugin</artifactid> </plugin> </plugins> </build> </project>
新建一个user类,这个是使用lombok的类,代码如下:
package com.dalaoyang.entity; import lombok.allargsconstructor; import lombok.data; import lombok.noargsconstructor; /** * @author dalaoyang * @description * @project springboot_learn * @package com.dalaoyang * @email yangyang@dalaoyang.cn * @date 2018/5/7 */ @data @allargsconstructor @noargsconstructor public class user { private integer id; private string name; private string password; }
新建一个usernolombok类,这个和原来一样,目的为了对比使用lombok的好处,代码如下:
package com.dalaoyang.entity; import java.util.objects; /** * @author dalaoyang * @description * @project springboot_learn * @package com.dalaoyang.entity * @email yangyang@dalaoyang.cn * @date 2018/5/7 */ public class usernolombok { private integer id; private string name; private string password; public integer getid() { return id; } public void setid(integer id) { this.id = id; } public string getname() { return name; } public void setname(string name) { this.name = name; } public string getpassword() { return password; } public void setpassword(string password) { this.password = password; } public usernolombok(integer id, string name, string password) { this.id = id; this.name = name; this.password = password; } public usernolombok() { } @override public boolean equals(object o) { if (this == o) return true; if (o == null || getclass() != o.getclass()) return false; usernolombok that = (usernolombok) o; return objects.equals(id, that.id) && objects.equals(name, that.name) && objects.equals(password, that.password); } @override public int hashcode() { return objects.hash(id, name, password); } @override public string tostring() { return "usernolombok{" + "id=" + id + ", name='" + name + '\'' + ", password='" + password + '\'' + '}'; } }
然后新建一个usercontroller测试,代码如下:
package com.dalaoyang.controller; import com.dalaoyang.entity.user; import org.springframework.web.bind.annotation.getmapping; import org.springframework.web.bind.annotation.restcontroller; /** * @author dalaoyang * @description * @project springboot_learn * @package com.dalaoyang.controller * @email yangyang@dalaoyang.cn * @date 2018/5/7 */ @restcontroller public class usercontroller { @getmapping("/testuser") public user getuser(){ user user = new user(); user.setid(1); user.setname("dalaoyang"); user.setpassword("123"); system.out.println(user.tostring()); return user; } }
访问http://localhost:8080/testuser如图
lombok注解简介:
@data 标签,生成getter/setter tostring()等方法
@nonnull : 让你不在担忧并且爱上nullpointerexception
@cleanup : 自动资源管理:不用再在finally中添加资源的close方法
@setter/@getter : 自动生成set和get方法
@tostring : 自动生成tostring方法
@equalsandhashcode : 从对象的字段中生成hashcode和equals的实现
@noargsconstructor/@requiredargsconstructor/@allargsconstructor
自动生成构造方法
@data : 自动生成set/get方法,tostring方法,equals方法,hashcode方法,不带参数的构造方法
@value : 用于注解final类
@builder : 产生复杂的构建器api类
@sneakythrows : 异常处理(谨慎使用)
@synchronized : 同步方法安全的转化
@getter(lazy=true) :
@log : 支持各种logger对象,使用时用对应的注解,如:@log4j
源码下载 :
本地源码下载地址:springboot-lombok_jb51.rar
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。