经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Spring » 查看文章
SpringBoot图文并茂讲解Lombok库的安装与使用
来源:jb51  时间:2022/6/27 12:53:49  对本文有异议

1.相关介绍

Lombok是一个通过注解以达到减少代码的Java库,如通过注解的方式减少get,set方法,构造方法等, 同时可以自动化日志变量。

2.安装步骤

1.添加依赖

在pom.xml中添加lombok的依赖

  1. <!--lombok依赖-->
  2. <dependency>
  3. <groupId>org.projectlombok</groupId>
  4. <artifactId>lombok</artifactId>
  5. </dependency>

2.安装插件

IDEA中 File->Settings->Plugins,搜索安装Lombok插件。

安装完成,重启IDEA

如果编译时出错,可能是没有enable注解处理器。Annotation Processors > Enable annotation processing。设置完成之后程序正常运行(记得设置完成重启一下IDEA)。

3.使用注解

Lombok注解文档: https://projectlombok.org/features/all

Lombok提供注解方式来提高代码的简洁性,常用注解有:

注解作用
@Data注解在类,生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
@Setter注解在类或字段,注解在类时为所有字段生成setter方法,注解在字段上时只为该字段生成setter方法。
@Getter使用方法同上,区别在于生成的是getter方法。
@AllArgsConstructor注解在类,生成包含类中所有字段的构造方法。
@NoArgsConstructor注解在类,生成无参的构造方法。
@ToString注解在类,添加toString方法。
@NonNull这个注解可以用在成员方法或者构造方法的参数前面,会自动产生一个关于此参数的非空检查,如果参数为空,则抛出一个空指针异常。
@EqualsAndHashCode注解在类,生成hashCode和equals方法。
@Log这个注解用在类上,可以省去从日志工厂生成日志对象这一步,直接进行日志记录,具体注解根据日志工具的不同而不同,同时,可以在注解中使用topic来指定生成log对象时的类名。不同的日志注解总结如下(上面是注解,下面是实际作用):
  1. @CommonsLog
  2. private static final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(LogExample.class);
  3. @JBossLog
  4. private static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(LogExample.class);
  5. @Log
  6. private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LogExample.class.getName());
  7. @Log4j
  8. private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LogExample.class);
  9. @Log4j2
  10. private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class);
  11. @Slf4j
  12. private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
  13. @XSlf4j
  14. private static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LogExample.class);

下面演示几个注解的使用

使用注解前

User

  1. package com.limi.entity;
  2. public class User {
  3. private Integer id;
  4. private String userName;
  5. private String passWord;
  6. public User(){}
  7. public User(Integer id, String userName, String passWord) {
  8. this.id = id;
  9. this.userName = userName;
  10. this.passWord = passWord;
  11. }
  12. @Override
  13. public String toString() {
  14. return "User{" +
  15. "id=" + id +
  16. ", userName='" + userName + '\'' +
  17. ", passWord='" + passWord + '\'' +
  18. '}';
  19. }
  20. public Integer getId() {
  21. return id;
  22. }
  23. public void setId(Integer id) {
  24. this.id = id;
  25. }
  26. public String getUserName() {
  27. return userName;
  28. }
  29. public void setUserName(String userName) {
  30. this.userName = userName;
  31. }
  32. public String getPassWord() {
  33. return passWord;
  34. }
  35. public void setPassWord(String passWord) {
  36. this.passWord = passWord;
  37. }
  38. }

使用注解, 效果和上面一致, 大大减少了代码量

User

  1. package com.limi.entity;
  2. import lombok.AllArgsConstructor;
  3. import lombok.Data;
  4. import lombok.NoArgsConstructor;
  5. @Data
  6. @AllArgsConstructor
  7. @NoArgsConstructor
  8. public class User {
  9. private Integer id;
  10. private String userName;
  11. private String passWord;
  12. }

测试

  1. package com.limi;
  2. import com.limi.entity.User;
  3. import lombok.extern.log4j.Log4j2;
  4. import org.springframework.boot.SpringApplication;
  5. import org.springframework.boot.autoconfigure.SpringBootApplication;
  6. @Log4j2
  7. @SpringBootApplication
  8. public class MainApplication {
  9. public static void main(String[] args) {
  10. SpringApplication.run(MainApplication.class, args);
  11. User user = new User(1, "andy", "123456");
  12. log.info(user); //使用Lombok的@Log4j2注解, 可以直接使用log
  13. }
  14. }

到此这篇关于SpringBoot图文并茂讲解Lombok库的安装与使用的文章就介绍到这了,更多相关SpringBoot Lombok库内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号