Lombok如何快速构建JavaBean与日志输出

这篇文章主要介绍了Lombok如何快速构建JavaBean与日志输出,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

快速构建JavaBean与日志输出

我们在写基类JavaBean时,当定义了成员变量后,我们不得不添加构造器,setter/getter方法以及toString方法,虽然eclipse等开发工具有一键生成策略,但是对我们来说仍觉得繁琐,并且当我们在对该类进行添加或者删除成员变量操作时,我们又得人为的去增添或删除setter/getter方法,此等重复操作大大地刺激到了正处于开发崩溃边缘的程序员,因此,lombok应运而生,帮我们解决了“懒”的问题。

以前的JavaBean是这样的

现在的JavaBean是这样的

使用Lombok前的准备操作

①添加maven依赖,或者到官网下载对应jar包 https://projectlombok.org/download

               org.projectlombok               lombok               1.16.16            

②为eclipse等工具安装好插件

<1>将lombok.jar移到eclipse的安装目录 

<2>在eclipse.in文件最后加入下面一行-javaagent:D:\install\jee-oxygen\eclipse\lombok.jar

<3>重启eclipse

操作指南:

构造器,日志等注解必须标注在类上,setter/getter等方法标注在类上时,作用在所有成员变量上,当标注在成员变量上时,只有该变量起作用。

注解的具体作用:

@NoArgsConstructor //空参构造器 @AllArgsConstructor //全参构造器 @Data //set,get,toString等方法 @Accessors(chain=true)  //链式风格访问,new Dept().setName("cmj").setDeptno(1000L).setDb_source("db01");

那么问题来了,当我们需要在getter方法中进行操作时,如当年龄字段为null时,我需要返回给我一个数字20,这我们该怎么办呢?

其实lombok还是很给力的,当注解和getter等方法有冲突时,该变量的注解将失去作用,其作用的将是我们自定义的方法。

@Slf4j

标注在类上,相当于

private  final Logger logger = LoggerFactory.getLogger(XXX.class);

@NonNull: 可以帮助我们避免空指针。

使用lombok:

import lombok.NonNull; public class NonNullExample extends Something { private String name; public NonNullExample(@NonNull Person person) { super("Hello"); this.name = person.getName(); } }

不使用lombok:

public class NonNullExample extends Something { private String name; public NonNullExample(@NonNull Person person) { super("Hello"); if (person == null) { throw new NullPointerException("person"); } this.name = person.getName(); } }

@Cleanup: 自动帮我们调用close()方法。

使用@Cleanup:

import lombok.Cleanup; import java.io.*; public class CleanupExample {     public static void main(String[] args) throws IOException {         @Cleanup InputStream in = new FileInputStream(args[0]);         @Cleanup OutputStream out = new FileOutputStream(args[1]);         byte[] b = new byte[10000];         while (true) {             int r = in.read(b);             if (r == -1) break;             out.write(b, 0, r);         }     } }

不用@Cleanup:

import java.io.*;     public class CleanupExample {         public static void main(String[] args) throws IOException {             InputStream in = new FileInputStream(args[0]);             try {                 OutputStream out = new FileOutputStream(args[1]);                 try {                     byte[] b = new byte[10000];                     while (true) {                     int r = in.read(b);                     if (r == -1) break;                     out.write(b, 0, r);                     }                 } finally {                     if (out != null) {                         out.close();                     }                 }             } finally {                 if (in != null) {                 in.close();             }         }     } }

IDEA使用lombok输出日志

安装lombok插件

pom.xml加入依赖

 org.projectlomboklomboktrue1.16.18

使用@Slf4j注解

使用log对象的info()方法

@RestController @Slf4j public class PaymentController { @Autowired private PaymentService paymentService; @GetMapping(value = "/payment/get/{id}") public CommonResult getById(@PathVariable("id") long id){ Payment result = paymentService.getPaymentById(id); log.info("查询结果:"+result); if(result!=null){ return new CommonResult(200,"查询成功",result); } else { return new CommonResult(444,"没有查到,ID:"+id,null); } } } 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持0133技术站。

以上就是Lombok如何快速构建JavaBean与日志输出的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java