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