开门见山:本教程同步更新于同名公共号:程序员八阿哥 喜欢的朋友可以搜索并关注
获取源码:本教程源码获取方式,私信回复关键字: SBJC
前言:我们之前代码中充斥着太多重复且不友好的getter/setter/toString,异常处理,I/O流的关闭操作等等,这些样板代码既没有技术含量,又影响着代码的美观,随着属性的增多很容易出错,Lombok应运而生
简介
Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率
安装(IDEA)
File->Setting->Plugins->lombok->install
使用
Maven依赖配置
注解介绍:
@Setter 注解在类或字段,注解在类时为所有字段生成setter方法,注解在字段上时只为该字段生成setter方法。
@Getter 使用方法同@Setter,区别在于生成的是getter方法。
@ToString 注解在类上,添加toString方法。
@EqualsAndHashCode 注解在类上,生成hashCode和equals方法。
@NoArgsConstructor 注解在类上,生成无参的构造方法。
@RequiredArgsConstructor 注解在类上,为类中需要特殊处理的字段生成构造方法,比如final和被@NonNull 注解的字段。
@AllArgsConstructor 注解在类上,生成包含类中所有字段的构造方法。
@Data 注解在类上,生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
@Slf4j 注解在类上,生成log变量,严格意义来说是常量。private static final Logger log = LoggerFactory.getLogger(UserController.class);
使用案例:
实体中使用
package com.bug.mq.chapter1;import lombok.Data;@Datapublic class User { private Long userId; private String account; private String realName; private String nickName;}
日志注解使用:@Slf4j
package com.bug.mq.chapter1;import lombok.extern.slf4j.Slf4j;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication@Slf4jpublic class Chapter11Application { public static void main(String[] args) { log.info("服务开始启动"); SpringApplication.run(Chapter11Application.class, args); }}
高级用法
Bean中的链式用法
package com.bug.mq.chapter1;import lombok.Data;import lombok.experimental.Accessors;@Data@Accessors(chain = true)public class User { private Long userId; private String account; private String realName; private String nickName;}
eg:
@Test void contextLoads() { User user = new User().setUserId(1l).setAccount("account").setNickName("nickName"); }
静态构造方法使用
package com.bug.mq.chapter1;import lombok.Data;import lombok.RequiredArgsConstructor;import lombok.experimental.Accessors;@Data@Accessors(chain = true)@RequiredArgsConstructor(staticName = "of")public class User { private Long userId; private String account; private String realName; private String nickName;}
eg:
@Test void contextLoads() { User user = User.of().setUserId(1l).setAccount("account").setNickName("nickName"); }
Builder方式
package com.bug.mq.chapter1;import lombok.Builder;import lombok.Data;import lombok.RequiredArgsConstructor;import lombok.experimental.Accessors;@Builderpublic class User { private Long userId; private String account; private String realName; private String nickName;}
eg:
@Testvoid contextLoads() { User user = User.builder().userId(1l).account("account").nickName("nickName").build();}
写在最后:本文主要介绍lombok的好处和用法,希望能帮助到大家。后续还有更多连载系列文字更新,喜欢的朋友可以持续关注。谢谢。