一、Lombok
前言:lombok前期准备
1、在Eclipse环境下的安装使用
将lombok.jar放入Eclipse的本目录下;
打开eclipse.ini并在文件末尾写入如下代码
-Xbootclasspath/a:lombok.jar
-javaagent:lombok.jar
- 重启Eclipse,然后在pom.xml引入入lombok的依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
<scope>provided</scope>
</dependency>
- 进行代码测试,若要查看编译后的class文件,可采用JD-GUI工具(JD-GUI下载地址),该工具可直接打开,点击File–>Open File–>选择需要反编译的class文件即可
2、lombok相关注解的解释说明
@Data
注解在类上,它是一个集合体,包含@Getter
、@Setter
、@RequiredArgsConstructor
、@ToString
、@EqualsAndHashCode
、@lombok.Value
@Setter
:注解在类或者属性上,提供setXXX( )
方法(value
属性可设置生成方法的访问级别,如@Setter(value=lombok.AccessLevel.PRIVATE)
)@Getter
:同@Setter
相似,提供getXXX( )
方法@Builder
:把实体类Bean包装为一个构建者模式,编译时增加了一个Builder内部类和全字段的构造器,使用步骤如下:
Department department=Department.builder().id(12).deptname("人事部").build();
@NoArgsConstructor
:注解在类上,提供无参构造方法(可采用access
控制访问级别,如@NoArgsConstructor(access=lombok.AccessLevel.PROTECTED)
)@AllArgsConstructor
:注解在类上,提供全参构造方法@RequiredArgsConstructor
: 注解在类上,提供必选参数构造器。
请注意:以上三个构造器注解,@NoArgsConstructor
和@AllArgsConstructor
可同时标注,但是@RequiredArgsConstructor
只能和@AllArgsConstructor
同时标注;需要特别注意的是,@RequiredArgsConstructor
配合@NonNull
同时使用时,只有标注了@NonNull
的字段才会被纳入@RequiredArgsConstructor
的构造器中!!!@Value
:注解在类上,相当于同时使用@Getter
、@FieldDefaults(makeFinal=true,level=AccessLevel.PRIVATE)
、@AllArgsConstructor
、@ToString
、@EqualsAndHashCode
请注意:@Value
注解适用于常见不可变(Immutable)对象,相当于把成员变量全部设定为private
、final
修饰,且不生成setXXX( )
方法,该注解自动添加的是全参的构造器;若需要无参构造器,可使用@NoArgsConstructor
自行添加!!!@NonNull
:标注在属性上,若为属性添加此注解,当其值为null时会抛出空指针异常@Log
:日志注解,标注在类上,标注的类会隐式地定义一个名为log的日志对象;一般情况下,选择使用@Log4j
和@Slf4j
import java.io.Serializable;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Setter(value=lombok.AccessLevel.PRIVATE)
@Getter(value=lombok.AccessLevel.PUBLIC)
@ToString//(exclude={"users"})
@NoArgsConstructor(access=lombok.AccessLevel.PROTECTED)
@AllArgsConstructor
@Builder//把Bean包装为一个构建者模式,编译时增加了一个Builder内部类和全字段的构造器
public class Department implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
private String deptname;
private List<User> users;
@Setter(value=lombok.AccessLevel.PROTECTED)
@Getter(value=lombok.AccessLevel.PROTECTED)
protected String name;
}
二、SpringToolSuite
1、安装Spring Tool Suite,选择Eclipse–>Help->Eclipse Marketplace
在Find里输入Spring Tool Suite,点击Install,安装后重启Eclipse