Intelli J中好用和提高生产力的插件:Lombok 和Free Mybatis Plugin

开头:

做过Java的同学都知道,对编写Bean.class,要写很多Setter和Getter函数,当然我们可以利用IDE中的自带的Setter,Getter插件,完成Bean的属性函数编写

例如,在Mac 中的Intelli J中

直接用command+N,或者右键点击Generate

Intelli J中好用和提高生产力的插件:Lombok 和Free Mybatis Plugin

当然,这种方式还是不够简洁,当属性特别多的时候,整个类都是setter和getter函数,挺烦人的;当你要删除和添加属性的时候,也会很繁琐

Lombok插件:

在Intelli J,Lombok插件就应运而生了,我们就来直接看效果吧,

import lombok.Data;


@Data
public class Product {
    private int id;
}

直接使用类的声明上面添加@Data,或者在属性上添加@Setter或者@Getter

import lombok.Getter;
import lombok.Setter;


public class Product {
    @Setter
    @Getter
    private int id;
}

当然,利用@AllArgsConstructor,也可以自动生成构造函数

import lombok.AllArgsConstructor;
import lombok.Data;

@Data
@AllArgsConstructor //所有参数作为构造函数
public class Product {

    private int id;
}

 

原理:

利用注解,在编译的时期,通过一种抽象语法树,自动匹配和生成Setter和Getter函数

下面就是编译后的.class文件,可以看出整个过程和结果还是很容易理解的,只要你理解注解的原理

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

public class Product {
    private int id;

    public Product() {
    }

    public int getId() {
        return this.id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public boolean equals(Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof Product)) {
            return false;
        } else {
            Product other = (Product)o;
            if (!other.canEqual(this)) {
                return false;
            } else {
                return this.getId() == other.getId();
            }
        }
    }

    protected boolean canEqual(Object other) {
        return other instanceof Product;
    }

    public int hashCode() {
        int PRIME = true;
        int result = 1;
        int result = result * 59 + this.getId();
        return result;
    }

    public String toString() {
        return "Product(id=" + this.getId() + ")";
    }
}

2.Free Mybaits Plugin:

做Java EE的时候,用到最多的ORM框架应该就是MyBaits了

MyBaits的主要结构就是service.java,mapper.java,mapper.xml组成,可以简单地理解下,service主要是提供业务接口的,mapper.class就是提供数据库接口的,mapper.xml就是操作数据库的;差不多就是这样的流程,service-->mapper.java-->mapper.xml,其中,mapper.java也和mapper.xml一一对应

如果我们手动编写这些代码,是不是很繁琐,本来Mybaits是帮我们屏蔽了很多数据库操作的细节的,可是,我们还是要编写很多代码和执行很多操作

当然肯定会有各种插件来帮我们减少代码量和操作量,针对Mybaits,国人做了一个插件:https://github.com/wuzhizhan/free-idea-mybatis,这个插件怎么用呢?

请打开这个链接,里面说得很详细,

 

 

安装方法:

以Lombok为例

1.直接在Intelli J中Preference--->Plugins--->搜索Lombok

2.上面的方法,可能会经常读取超时的问题,因为我们就需要先把插件文件下载本地,然后从本地安装下载

首先直接百度搜索插件,然后下载本地(推荐方法2)

Intelli J中好用和提高生产力的插件:Lombok 和Free Mybatis Plugin

然后,从Preference--->Plugins--->从本地安装

Intelli J中好用和提高生产力的插件:Lombok 和Free Mybatis Plugin

总结:

在Java这个庞大可持续的生态链中,各种个样的插件都很多,紧跟最新技术发展,那我们的编程效率就会高很多,我们就可以专心在业务中去。当然也要懂基本的原理,遇到问题才能从容应对

 

上一篇:入门Python(数据库操作及网络访问)


下一篇:android 实现qq聊天对话界面效果