同福

做个Java框架(2)——实体对象和Lombok库【20201228】

介绍

介绍

福哥今天带着大家来继续开发我们的TFSpring框架,今天要将的是Java开发的基础设计对象——实体(Entity)。

所谓实体其实就是相对于面向对象开发模式来说的,Java语言是彻头彻尾的面向对象的编程语言,在Java程序里无论是控制器、模型、配置信息、包括数据结构都是使用对象来实现的。我们设计一个系统的模型结构的时候会抽象出很多模型对象出来,这些抽象模型在被填充实际的数据之后就成为了实体对象,实体对象就是有意义的了,它代表着一个用户?一件商品?一条评论?一个订单等等具体内容。

实体对象的数据作为对象的属性存储在对象内部,我们要获取对象的属性或者设置对象的属性都服务对象的属性,虽然通过将对象属性公开化(public)可以满足需要,但是大家都是通过getter/setter方法来访问对象属性的。比如对象有个属性是id,获取id需要使用getId方法,设置id需要使用setId方法,在对象属性非常多的情况下编写getter/setter方法就够我们喝一壶的了。这里面有一个方便的插件可以帮助我们实现这些繁琐的体力劳动,它就是lombok插件。

实体对象

首先我们在entity目录下建立一个Demo实体对象,给它设置一个id和一个label两个属性。

代码

package net.tongfu.tfspring.demo.entity;

public class Demo {
    Integer id;
    String label;
    
    public Integer getId(){
        
        return id;
    }
    
    public void setId(Integer id){
        this.id = id;
    }
    
    public String getLabel(){
        
        return label;
    }
    
    public void setLabel(String label){
        this.label = label;
    }
}

大家可以看到这么简单的一个实体对象,只包含了两个属性,就要写这么一堆代码。

安装Lombok

现在我们要安装lombok插件,帮助我们解决实体对象的getter/setter方法的问题了。

添加依赖

打开pom.xml文件,在dependencies下面添加如下依赖代码。

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

点击右小角的import changes自己安装lombok库

bf9f6f950ba64cc8.jpg

导入插件

一般情况下安装依赖在pom.xml添加完依赖就可以使用了,因为lombok是非常规库,所以需要安装针对IDEA的插件才行。

打开File > Settings窗口,点开Plugins页,在右边搜索“lombok”,点击“Install”安装它。

04c1de324942dc6d.jpg安装完成后,点“Restart IDE”重启IDEA。

测试

现在重新打开Demo实体,删除掉全部的getter/setter代码,在class定义前面增加“Data”注解。

package net.tongfu.tfspring.demo.entity;

import lombok.Data;

@Data
public class Demo {
    Integer id;
    String label;
}

这样Demo实体就自动拥有了getter/setter方法了,是不是很棒啊?

测试

现在我们打开DemoController控制器,把数据类型改成Demo实体试试看。

@RequestMapping ("/demo")
public Demo responseDemo(){
    Demo demo = new Demo();
    demo.setId(1);
    demo.setLabel("福哥");

    return demo;
}

76259e26d9e3ddd8.jpg可以看到Demo实体自动转换成了JSON数据格式显示出来了,这也是SpringBoot的强大之处了。

总结

今天福哥带着童鞋们了解了什么是实体对象和实体对象的getter/setter方法以及如何通过lombok自动完成实体对象的getter/setter方法的技巧。

实体对象在PHP语言里面一般情况下以array形式出现,PHP的array是一大神器可以随意的组合各种数据结构,不过在PHP7开始福哥在PHP程序里面也使用了实体对象的设计模式了,因为实体对象可以帮助我们实现自动补全的功能,这个太方便了。