分享一些项目中用到的好用的IDEA插件...
1. Lombok
Lombok是一个非常实用的java工具,可以精简代码,避免过多冗长重复代码。主要是通过注解来实现,有@Data、@Getter/@Setter、@Builder、@NonNull等。
注解:
- @ToString:注解在类上,调用 toString() 方法,可输出实体类中属性值。
- @Getter:注解在类上,插件自动生成实体类中所有属性的getter方法;
- @Setter:注解在类上,插件自动生成实体类中所有属性的setter方法;
- @RequiredArgsConstructor:注解在类上,配合 @NonNull 注解使用,生成指定参数的构造方法。比如在name属性上加@NonNull 注解,则实体类会生成需要name属性参数的构造方法;
- @NoArgsConstructor:注解在类上,可以生成无参构造方法;
- @AllArgsConstructor:注解在类上,可以生成含实体类全参数的构造方法;
- @EqualsAndHashCode:注解在类上,可以生成 equals(Object other) 和 hashCode() 方法。可以通过参数 exclude 排除一些属性,可以通过参数 of 指定仅使用哪些属性
- @Date:注解在类上,相当于同时使用了@ToString、@EqualsAndHashCode、@Getter、@Setter和@RequiredArgsConstrutor这些注解;
缺点:
- 使用Lombok的前提就是开发人员一定要在开发工具上下载该插件,否则会有异常,也就是项目全部开发人员必须强制要求下载。
- 破坏封装:Lombok提供的public的setter和getter,也就是外部可以随意调用来修改值。
-
使用@Data时,会自动生成equals()方法 。但是如果只使用了@Data,而不使用 @EqualsAndHashCode(callSuper=true)的话,会默认是 @EqualsAndHashCode(callSuper=false),这时候生成的equals()方法只会比较子类的属性,不会考虑从父类继承的属性,无论父类属性访问权限是否开放。
比如,有多个类有相同的部分属性,把它们定义到父类中,恰好id(数据库主键)也在父类中,那么就会存在部分对象在比较时,它们并不相等,却因为lombok自动生成的equals(Object other) 和 hashCode()方法判定为相等,从而导致出错。
安装方法:
(1)导入依赖:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
(2)IDEA中搜索下载:
Files → settings → plugins
点击install即可,我的已经下载过了...下载之后重启IDEA,来一个例子:
import lombok.Data;
@Data
public class Person{
private String name;
private int age;
private char gender;
}
2. Free MyBatis Plugin
(1)先来安装这个插件,安装方式同上,不需要修改pom文件。
(2)让我们添加一个数据库
填写自己的数据库信息,如果test connection无法点击,点击下面黄色叹号下载之后即可。
(3)右键需要生成的表~
设置生成文件的包路径等信息
(4)成功!