SSM框架----修改mybatis-generate源码实现实体类加上字段注释

时间:2021-12-28 16:35:52
    使用mybatis代码自动生成插件可以节约开发者很多时间,但是由它生成的实体类并没有把表字段注释给加上,这样后期要想知道某个属性是做什么的,不得不去 数据库查看,相对来说幸福感就没有那么强了,基于此,只能自己试着去修改源码,实现自己想要的文件样子,功夫不负有心人,在简单了解下源码后终于把实体类加上注释了,本文介绍如何去修改mybatis代码生成源码,实现实体类加上字段注释。

        首先需要下载mybatis-generator-core-1.3.2的源码,然后创建一个maven项目,把源码放到项目里面去,方便修改。

        接着修改api.dom.Java里面的Field类,添加一个注释的属性以及set,get方法,如图

       SSM框架----修改mybatis-generate源码实现实体类加上字段注释

      接着修改该类的getFormattedContent方法,该方法原来是返回修饰符+类型+属性名;我们只需要在后面判断一下remarks是否为空,并把它拼在原来的字符串后面即可,如图

SSM框架----修改mybatis-generate源码实现实体类加上字段注释

     接着我们就需要为我们新增的remarks赋值了,通过查看源码,可以发现这个动作发生在codegen包下面的AbstractJavaGenerator的getJavaBeansField方法,刚好发现作者写插件的时候是有读取字段注释的,为IntrospectedColumn的remarks属性,所以到这里事情就变得简单多了,只要把字段名类型赋值给Field的同时把remarks也赋值一下就搞定了,如图

SSM框架----修改mybatis-generate源码实现实体类加上字段注释

      改完这三个地方,把改动的class替换原有jar包里面的文件(当然你也可以重新打包),执行一下生成命令,注释出现在实体类上了,但是竟然是乱码,无奈只能继续修改,找到它写文件的地方MyBatisGenertor(通过生成代码时候打印的日志信息进行查找,就能快速知道它大概在哪个位置),默认改为UTF-8编码写文件,位置如下图

SSM框架----修改mybatis-generate源码实现实体类加上字段注释

     修改完成后,再把这个class替换到原来的jar包,再次执行生成命令,这一次中文注释完美的出现了,这样后来人查看的时候就不用再去数据库看看这个到底是做什么用的啦。

SSM框架----修改mybatis-generate源码实现实体类加上字段注释

     修改的地方不多,总算实现了自己想要的目的,敢于去尝试,总会得到想要的。