今天我们介绍一个开发Javabean(实体类也是一个JavaBean)对象的一个神器:Lombok
一、lombok是什么?
JavaBean:Java定义的可重复使用的组件,也就是类。一般Javabean符合如下特征:
1、类中的属性必须是私有化的private修饰的(为了保证数据的安全性)
2、必须提供公开的getter、setter方法去暴露属性
3、必须具备一个无参构造器(公开的)
4、提供toString和equals方法等(可选)
实体类:实体类也是一种JavaBean对象,但是和JavaBean不一样的是,实体类是和数据库表对应的一个JavaBean对象,一般实体类有如下特点:
1、数据库表名是Java的类名
2、数据库表的字段是Java类的属性
3、数据表中每一项数据就是JavaBean的一个对象
4、对某一行表数据的增删改对应的是JavaBean中getter、setter方法
因为JavaBean对象概念很清晰——需要公开的getter和setter、toString、构造器,生成这些东西不复杂,但是很繁琐。
所以业界之内提供一个技术 可以快速帮助我们去实现JavaBean对象的创建:lombok
lombok技术采用注解的形式帮助我们代码快速的生成JavaBean对象中getter、setter、toString、equals、构造器这些代码,我们只需要写几个注解即可,会在代码编译时期通过反射自动帮助我们把这些代码加上:相当于这些代码块的增加交由机器帮助我们完成
二、lombok的使用
步骤一 引入lombok的依赖
在pom.xml中添加maven依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
</dependency>
步骤二 下载安装lombok的插件
IEDA中file----settings----plugins----lombok下载(小辣椒)
步骤三 在Javabean类上声明lombok的getter setter toString 构造器等等注解
@Data //帮助我们生成getter setter toString equals等等方法
@Builder //帮助我们根据不同的参数用来构建Java对象的
@NoArgsConstructor //无参构造器
@AllArgsConstructor //所有参数的构造器
public class Student implements Serializable {
private int id;
private String name;
private int age;
}
测试:
public class Test {
public static void main(String[] args) {
Student student = new Student();
Student s = new Student(1,"zs",20);
//通过Lombok的builder注解创建不同参数的对象
Student s1 = Student.builder().age(20).build();
}
}
讲一些底层的东西:自定义注解
@Target({ElementType.TYPE}) @Retention(RetentionPolicy.CLASS) public @interface MyAnnonation { }
@Target({ElementType.TYPE}):自定义完可作用在类上
@Target({ElementType.FIELD}):自定义完可作用在属性上
@Target({ElementType.METHOD}):自定义完可作用在方法上
生命周期类型 描述 RetentionPolicy.SOURCE 编译时被丢弃,不包含在类文件中 RetentionPolicy.CLASS JVM加载时被丢弃,包含在类文件中,默认值 RetentionPolicy.RUNTIME 由JVM 加载,包含在类文件中,在运行时可以被获取到
三、注意
Lombok虽然是一个神奇,可以简化开发人员的编写代码,带式这个神奇对代码的侵入性很大:
1、在一个开发组中,如果我们使用了lombok,那么别人如果要用我们的代码 ,那么他必须下载lombok的插件和lombok的依赖,如果没引入下载 那么无法使用
2、 Lombok虽然好用,但是看具体的公司代码组的要求