charles,spring boot ( 48 )使用lombok制作优雅的代码-安博电竞网页版-官网

西甲联赛 203℃ 0

前语

Lombok 是一种 Java™ 实用工具,可用来协助开发人员消除 Java 的冗长,尤其是关于简略的 Java 目标(POJO)。它经过注解完成这一意图。

正文

增加依靠

在 pom.xml 文件中增加相关依靠:

1.16.20


org.projectlombok
lombok
${l百度游戏ombok.version}
provided

装置插件

因为 Lombok 采纳的注解办法的,在编译后,主动生成相应的办法,为了不让 ide 八宝饭的做法疯了,色桃花需求下载插件了支撑它。

以 idea 为例:查找插件 lombok plugin 装置即可。

用我的 User 实体类为例(set,get,toString经济与法举案说法 办法),

@Getter
@Setter
@ToString
public class SysUserEntity implements Serializable

在按快捷键 Ctrl + F12,能够查找到set,get,toString 办法。

注解

写点常用的,其他的 api 的翻开 Jar 包一望而知

@Getter

@Setter

@ToString

@EqualsAndHashCode

结构函数

@AllArgsConstructor

会生成一个包括一切变量,一起假如变量运用了NotNull annotation , 会进行是否为空的校验,

悉数参数的结构函数的主动生成,该注解的效果域也是只要在实体类上,参数的次序与特点界说的次序共同。

@NoArgsConstructor

无参结构函数

@RequiredArgsConstructor

会生成一个包括常量(final),和标识了@NotNull的变量 的结构办法。

怎样运用

它们都有三个参数能够设置

1. Stri汉中城固气候camng staticName(charles,spring boot ( 48 )运用lombok制造高雅的代码-安博电竞网页版-官网) default "";

假如设置了它,将本来的结构办法的拜访修饰符将会变王泷正成 私有的,而外增加一个静态结构办法,参数相同,姓名是设置的字符串的姓名,拜访修饰符为公有的。

  1. AnyAnnotation[] onConstructor() default {};
  2. 在结构办法上增加注解。运用办法@RequiredArgsConstructor(onConstructor=@__({@AnnotationsGoHere}))}
  3. 例如咱们在 Spring 项目中需求注入多个值,写很多个 @Autowired 很费事,就能够运用这种办法:
@Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class UserServiceImpl imple镇妖册ments IUserService {
private final IUserRepository userRepository;
private final IOrderRepository orderRepository;
………………
  1. Accecharles,spring boot ( 48 )运用lombok制造高雅的代码-安博电竞网页版-官网ssLevel access() default lombok.AccessLevel.PUBLIC;
  2. 结构函数拜访修饰符;
  3. @NoArg山本耀司sConstructor无参结构函数中还有个注解 bo末世重生之百里心oleadangoursn force() default false;
  4. 作者的注释是 If {@code true}, initializes all final fields 缆组词to 0 / null / fa张玉嬿lse. Otherwise, a compile time error occurs.
  5. 设置为 true 的时分,初始化一切的参数为默许值,不然编译过错。

@Data

我自己尝试了下,咱们运用 @Data 注解就能够有下面几个注解的功用: @ToString、@Getter、@Setter、@Equalcharles,spring boot ( 48 )运用lombok制造高雅的代码-安博电竞网页版-官网sAndHashCode、@NoArgsConstructor 。

留意的是,一起运用@Data 和 @Alcharles,spring boot ( 48 )运用lombok制造高雅的代码-安博电竞网页版-官网lArgsConstructor 后 ,默许的无参结构函数失效,假如需求它,要从头设置 @NoArgsConstructor

@Slf4j

//类上面注解了,直接调用 log 即可:
log.info(xxxx);

@Log

运用的是 java.util.logging.Logger ,直接运用 变量 log。

@Builder

bulder 形式构建目标。

@Cleanup

@Cleanup 
InputStream in = new FileInputStream(args[0]);
@Cleanup
OutairtrippputStream out = new FileOutpucharles,spring boot ( 48 )运用lombok制造高雅的代码-安博电竞网页版-官网tStream(args[1]);

主动化封闭流,相当于 jdk1.7 种的 try2型糖尿病 with resource

val

类型推导。

 val examplponde = new ArrayList();
example.add("Hello, World!");

对应的转化后代码便是:

 val example = new ArrayList();
example.add("Hello, World!");

@NonNull

public NonNullExample(@NonNull Person person) {
this.name = person.getN欢度春节手抄报ame();
}

转化后便是:

public NonNullExample(@NonNulcharles,spring boot ( 48 )运用lombok制造高雅的代码-安博电竞网页版-官网l Person person) {
if (person == null) {
throw new NullPointerException("per五谷son");
}
this.name = person.getName();
}

@Sneakycharles,spring boot ( 48 )运用lombok制造高雅的代码-安博电竞网页版-官网Throws

翻译便是私自抛出反常

当咱们需求抛出反常,在当前办法上调用,不必显现的在办法名后边写 throw

@SneakyThrows(Exception.class)

@Synchronized

办法中一切的代码都加入到一个代码块中,默许静态办法运用的是大局锁,一般办法运用的是目标锁,当然也能够指定锁的目标。

private final Object lock = new Object();
@Synchronized("lock")
public void foo() {
//洛晴可能否 Do something
}

个人认为这样的阅览起来比较费事,实践开发中往往将 synchronized 颗粒化到代码块中。