lombok

背景:在java中有属性这么一说,写一个成员变量,再给它定义上get跟set方法,它就成为了一个属性,比较简单。在一个java豆中随处可见这样的属性,以及在web开发中如果要将对象交给spring的IOC容器去管理也要给这个对象赋上相应的set方法,甚至在struts2中接收前端传过来的参数也得定义这样的属性,还有等等等等。这么多的get跟set方法放到代码中总觉得碍眼,那么能不能在写的时候不给这些成员变量定义set跟get方法,等到编译的时候再去加上呢?自然是可能的!

实现这个功能的工具叫做lombok,它可以帮我们自动的添加get跟set方法,其实不止如此,它甚至还能帮我们自动的重写toSting()方法以及等等等等。

那么究竟怎样使用呢?

首先需要安装,根据IDE的不同,有不同的安装方法。java的IDE大概分为两个,eclipse(myeclipse)跟IDEA。下面针对这两个IDE分别介绍安装lombok的方法

IDEA

在IDEA上安装非常的简单,打开IDEA的设置,搜索plugin,然后在右边搜索lombok安装就行

安装的过程比较快,等一会就可以了

eclipse

在eclipse上安装稍微复杂一点。。。

首先需要下载lombok的jar包:https://projectlombok.org/download

然后将lombok.jar移到eclipse的安装目录 

最后在eclipse.ini文件最后加入下面两行代码,eclipse.ini在lombok.jar同级的目录下

-Xbootclasspath/a:lombok.jar
-javaagent:lombok.jar

 做完后重启eclipse即可

 使用

装好后就可以使用了,首先导入lombok相关的Maven依赖

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.12</version>
    <scope>provided</scope>
</dependency>

然后就可以在写代码的时候放飞自我了。。。

只需要在想要使用的类上加上@Data注解即可免去写get、set跟toString方法了

当然,如果只希望不写get方法,可以只使用@Getter注解,同样如果只希望不写set方法,使用@Setter,也可以使用@ToString注解不写toString方法

下面对比一下使用lombok与不使用lombok:

import java.math.BigDecimal;

public class ProductInfo {
    private String productId;
    private String productName;
    private BigDecimal productPrice;
    private Integer productStock;
    private String productDescription;
    private String productIcon;
    private Integer productStatus;
    private Integer categoryType;

    public String getProductId() {
        return productId;
    }

    public void setProductId(String productId) {
        this.productId = productId;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public BigDecimal getProductPrice() {
        return productPrice;
    }

    public void setProductPrice(BigDecimal productPrice) {
        this.productPrice = productPrice;
    }

    public Integer getProductStock() {
        return productStock;
    }

    public void setProductStock(Integer productStock) {
        this.productStock = productStock;
    }

    public String getProductDescription() {
        return productDescription;
    }

    public void setProductDescription(String productDescription) {
        this.productDescription = productDescription;
    }

    public String getProductIcon() {
        return productIcon;
    }

    public void setProductIcon(String productIcon) {
        this.productIcon = productIcon;
    }

    public Integer getProductStatus() {
        return productStatus;
    }

    public void setProductStatus(Integer productStatus) {
        this.productStatus = productStatus;
    }

    public Integer getCategoryType() {
        return categoryType;
    }

    public void setCategoryType(Integer categoryType) {
        this.categoryType = categoryType;
    }

    @Override
    public String toString() {
        return "ProductInfo{" +
                "productId='" + productId + '\'' +
                ", productName='" + productName + '\'' +
                ", productPrice=" + productPrice +
                ", productStock=" + productStock +
                ", productDescription='" + productDescription + '\'' +
                ", productIcon='" + productIcon + '\'' +
                ", productStatus=" + productStatus +
                ", categoryType=" + categoryType +
                '}';
    }
}
不使用lombok

 

import lombok.Data;
import java.math.BigDecimal;


@Data
public class ProductInfo {
    private String productId;
    private String productName;
    private BigDecimal productPrice;
    private Integer productStock;
    private String productDescription;
    private String productIcon;
    private Integer productStatus;
    private Integer categoryType;
}
使用lombok

哈哈哈,我是魔鬼吗。。。

posted @ 2018-10-21 23:54  Jin同学  阅读(179)  评论(0)    收藏  举报