spring boot教程--集成lombok
一、lombok简介
Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。
Lombok 是一个非常神奇的 java 类库,会利用注解自动生成 java Bean 中烦人的 Getter、Setter,还能自动生成 logger、ToString、HashCode、Builder 等 java特色的函数或是符合设计模式的函数,能够让你 java Bean 更简洁,更美观。
lombok 的思想非常先进,它让我们省略繁琐的样板代码,不要在重复的代码上花费太长时间,它也是Java语言演进过程中必然出现的一种思想,要用20% 的时间做 80%的事情。
官方地址:https://projectlombok.org/
github地址:https://github.com/rzwitserloot/lombok
二、IntelliJ IDEA安装lombok插件
File=>Setting=>Plugins搜索lombok,安装后重启ide:

三、lombok使用方法
1.引入lombok的jar包
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
2.常用注解
- @Data 注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
- @Setter :注解在属性上;为属性提供 setting 方法
- @Setter :注解在属性上;为属性提供 getting 方法
- @Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
- @Slf4j:在需要打印日志的类中使用,当项目中使用了slf4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可
- @NoArgsConstructor :注解在类上;为类提供一个无参的构造方法
- @AllArgsConstructor :注解在类上;为类提供一个全参的构造方法
- @Cleanup : 可以关闭流
- @Builder : 被注解的类加个构造者模式
- @Synchronized : 加个同步锁
- @SneakyThrows : 等同于try/catch 捕获异常
- @NonNull : 如果给参数加个这个注解 参数为null会抛出空指针异常
- @Value : 注解和@Data类似,区别在于它会把所有成员变量默认定义为private final修饰,并且不会生成set方法。
参与地址:https://blog.csdn.net/qidasheng2012/article/details/84401570
3.在实体类中使用lombok注解
package com.core.deformation.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
import lombok.ToString;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.util.Date;
import java.util.List;
@Entity
@Table(name = "t_company")
@GenericGenerator(name ="jpa-uuid", strategy = "uuid")
@Data
@ToString(exclude = "projects") //排除掉projects属性
public class Company {
@Id
@GeneratedValue(generator = "jpa-uuid")
@Column(name = "company_id", length = 32)
private String companyId;
@Column(name = "company_name", length = 50)
private String companyName;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "create_time")
private Date createTime;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "modify_time")
private Date modifyTime;
@Column(name = "create_id", length = 32)
private String createId;
@OneToMany(targetEntity = Project.class, mappedBy = "company", fetch = FetchType.LAZY,cascade = CascadeType.REMOVE)
@JsonIgnoreProperties("company")
private List<Project> projects;
}
使用了lombok插件后实体中的get,set方法就不用手动去生成,极大的减少了实体类的代码量。

1576

被折叠的 条评论
为什么被折叠?



