SpringBoot Lombok库
鸣鼓ming 人气:01.相关介绍
Lombok是一个通过注解以达到减少代码的Java库,如通过注解的方式减少get,set方法,构造方法等, 同时可以自动化日志变量。
2.安装步骤
1.添加依赖
在pom.xml中添加lombok的依赖
<!--lombok依赖--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency>
2.安装插件
IDEA中 File->Settings->Plugins,搜索安装Lombok插件。
安装完成,重启IDEA
如果编译时出错,可能是没有enable注解处理器。Annotation Processors > Enable annotation processing。设置完成之后程序正常运行(记得设置完成重启一下IDEA)。
3.使用注解
Lombok注解文档: http://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对象时的类名。不同的日志注解总结如下(上面是注解,下面是实际作用): |
@CommonsLog private static final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(LogExample.class); @JBossLog private static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(LogExample.class); @Log private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LogExample.class.getName()); @Log4j private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LogExample.class); @Log4j2 private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class); @Slf4j private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class); @XSlf4j private static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LogExample.class);
下面演示几个注解的使用
使用注解前
User
package com.limi.entity; public class User { private Integer id; private String userName; private String passWord; public User(){} public User(Integer id, String userName, String passWord) { this.id = id; this.userName = userName; this.passWord = passWord; } @Override public String toString() { return "User{" + "id=" + id + ", userName='" + userName + '\'' + ", passWord='" + passWord + '\'' + '}'; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassWord() { return passWord; } public void setPassWord(String passWord) { this.passWord = passWord; } }
使用注解, 效果和上面一致, 大大减少了代码量
User
package com.limi.entity; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstructor public class User { private Integer id; private String userName; private String passWord; }
测试
package com.limi; import com.limi.entity.User; import lombok.extern.log4j.Log4j2; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @Log4j2 @SpringBootApplication public class MainApplication { public static void main(String[] args) { SpringApplication.run(MainApplication.class, args); User user = new User(1, "andy", "123456"); log.info(user); //使用Lombok的@Log4j2注解, 可以直接使用log } }
加载全部内容