实体类使用lombok注解加快开发

前言

lombok是一个可以帮助我们简化java代码编写的工具类,尤其是简化javabean的编写。
  
1、优点:
  即通过采用注解的方式,消除代码中的构造方法,getter/setter等代码,使我们写的类更加简洁,
  
2、缺点:
  当然,这带来的副作用就是不易阅读…不过,还是能看得懂吧,废话不多说,先看一下lombok支持的一些常见的注解。

1、idaa安装插件

如果不安装创建,使用上面注解的时候就会报错误,所以需要安装插件,搜索lombok
 
  [外链图片转存失败(img-FVY8TRjF-1566806808002)(https://raw.githubusercontent.com/HealerJean123/HealerJean123.github.io/master/blogImages/WX20180314-192308.png)]

2、依赖导入

<!-- lombok -->
<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
</dependency>

注解开始,我下面介绍的成员变量都是非静态的

1、@Data

注解在类上;
提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法

举例

@Data
public class EntityBean {

    String name;

    public static void main(String[] args) {
        EntityBean entityBean = new EntityBean();
        entityBean.setName("HealerJean");
        System.out.println(entityBean.getName());

    }
}

控制台 :HeaelrJean

2、Getter和Setter

注解再字段、类上
用于生成get和set方法,默认是public的,除非向下面一样指定

public class GetSeter {
    @Getter
    @Setter
    private String name;

    @Setter(AccessLevel.PROTECTED)
    private int age;

    @Getter(AccessLevel.PUBLIC)
    private String language;

}

等价于
public class GetSeter{
    private String name;
    private int age;
    private String language;

    public void setName(String name){
        this.name = name;
    }

    public String getName(){
        return name;
    }

    protected void setAge(int age){
        this.age = age;
    }

    public String getLanguage(){
        return language;
    }
}

3、@AllArgsConstructor有参构造器@NoArgsConstructor无参构造器

@AllArgsConstructor(access = AccessLevel.PROTECTED) //指定方法的封装为protect
@NoArgsConstructor
public class ArgsConstructor {
    private int x;

    public static void main(String[] args) {
        //有参构造器
        ArgsConstructor argsConstructor = new ArgsConstructor(2);
    }

}


等价于

public class Shape {
    private int x;
    private String name;

    public Shape(){
    }

    protected Shape(int x,String name){
 			 this.x = x;
        this.name = name;
    }
}

4、@log、@Slf4j

@Slf4j
这个注解用在类上,可以省去从日志工厂生成日志对象这一步

@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);


5、@Accessors

我用到的属性chain,用来改变set方法的void变成this.对我而言,在第一次根据别人博客学cas的时候遇到过

@Data
@Accessors(chain = true)
public class SessionKeyResult {

    private String openid;
    private String sessionKey;

    public static void main(String[] args) {
        SessionKeyResult sessionKeyResult = new SessionKeyResult();
        sessionKeyResult.setOpenid("HealerJean").setSessionKey("Jean")
    }
}






如果满意,请打赏博主任意金额,感兴趣的请下方留言吧。可与博主自由讨论哦

支付包 微信 微信公众号
支付宝 微信 微信公众号
posted @ 2018-03-14 20:41  HealerJean  阅读(172)  评论(0编辑  收藏  举报