Lombok这里不作详细介绍,有兴趣的同窗请移步:https://projectlombok.org/html
因目前项目中使用Mybatis且常用Lombok来简化java代码编写,而Mybatis generator生成的代码又是标准POJO,因此每次生成好的代码还要进行手动修改,太烦了。java
程序猿的本质都是懒的,因此写了一个插件,一劳永逸。api
import org.mybatis.generator.api.IntrospectedColumn; import org.mybatis.generator.api.IntrospectedTable; import org.mybatis.generator.api.PluginAdapter; import org.mybatis.generator.api.dom.java.Interface; import org.mybatis.generator.api.dom.java.Method; import org.mybatis.generator.api.dom.java.TopLevelClass; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; public class LombokPlugin extends PluginAdapter { public boolean validate(List<String> list) { return true; } @Override public boolean modelBaseRecordClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) { topLevelClass.addImportedType("lombok.Getter"); topLevelClass.addImportedType("lombok.Setter"); topLevelClass.addImportedType("lombok.ToString"); topLevelClass.addAnnotation("@Getter"); topLevelClass.addAnnotation("@Setter"); topLevelClass.addAnnotation("@ToString"); topLevelClass.addJavaDocLine("/**"); topLevelClass.addJavaDocLine("* Created by Mybatis Generator " + date2Str(new Date())); topLevelClass.addJavaDocLine("*/"); return true; } @Override public boolean clientGenerated(Interface interfaze, TopLevelClass topLevelClass, IntrospectedTable introspectedTable) { interfaze.addJavaDocLine("/**"); interfaze.addJavaDocLine("* Created by Mybatis Generator " + date2Str(new Date())); interfaze.addJavaDocLine("*/"); return true; } @Override public boolean modelSetterMethodGenerated(Method method, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable, ModelClassType modelClassType) { return false; } @Override public boolean modelGetterMethodGenerated(Method method, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable, ModelClassType modelClassType) { return false; } private String date2Str(Date date) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); return sdf.format(date); } }
关于Mybatis generator的插件如何编写,请参考:http://generator.sturgeon.mopaas.com/reference/pluggingIn.htmlmybatis
我是直接生成了一个jar,而后使用mybatis-generator-maven-plugin来生成代码的。 dom
配置文件中添加:maven