@Data注解引出lombok包
最近翻看⼀个新的项⽬,发现⼀个有趣的⼀点,就是这个项⽬的javabean并没有写对应属性的get、set、equals、toStirg等⽅法,却可以为属性赋值。
仔细看发现有⼀个@Data注解。感觉有点意思就研究⼀下。这个注解是属于Lombok包的。
Lombok优点:
Lombok可以最⼤限度的简化我们的代码。⽐如开发中使⽤的javabean。普通情况下我们要添加他的get、set⽅法,遇到⼀个实体类有三四⼗个属性时整个类会显得很长。并且也
equals()方法需要花时间去添加这些get、set⽅法,特殊情况下也需要去重写他的构造器和equals等⽅法。
此时lombok的优点就出来了,Lombok是通过注解的⽅式,在编译时⾃动为属性⽣成构造器、getter/setter、equals、hashcode、toString⽅法。
在.java⽂件中并没有显⽰来这些⽅法,不过编译后的.class⽂件中有这些⽅法。这样代码⽐较简洁,开发效率也提⾼了。
Lombok的使⽤需要引⼊jar包,maven项⽬中可以直接添加依赖(版本看情况⾃定):
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>$version</version>
</dependency>
常⽤注解:
@Setter :此注解会⽣成除final属性外的其他属性的对应的setter⽅法;
@Getter:此注解会⽣成除final属性外的其他属性的对应的getter⽅法;
@ToString:此注解会⾃动重写对应的toStirng⽅法;
@NoArgsConstructor:此注解会⽣成对应的⽆参构造⽅法;
@RequiredArgsConstructor将标记为@NoNull的属性⽣成⼀个构造器
@HashCode:
@Equals:
@CanEqual:
@Data:⽐较暴⼒,它包含很多注解,即当使⽤当前注解时,会⾃动⽣成包含的各种⽅法(@Setter+@Getter+@ToString+@EqualsAndHashCode);
@AllArgsConstructor:此注解会⽣成全部属性对应的的有参构造⽅法(不包含final属性);
@Log(这是⼀个泛型注解,具体有很多种形式)
@EqualsAndHashCode:在JavaBean或类JavaBean中使⽤,使⽤此注解会⾃动重写对应的equals⽅法和hashCode⽅法;
@Log4j:在需要打印⽇志的类中使⽤,当项⽬中使⽤了log4j打印⽇志框架时使⽤该注解,会简化⽇志的打印流程,只需调⽤info⽅法即可,不需要再写private final static Logger logger = Logger(XXXXXXXXX.class);在使⽤以上注解需要处理参数时,处理⽅法如下(以@ToString注解为例,其他注解同@ToString注解):
@ToString(exclude="column","..",..)
意义:排除对应列所对应的属性,⽣成toString时不包含column,..等多个参数;
@ToString(of="column","..",..)
意义:只⽣成包含对应列所对应属性的参数的toString⽅法;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论