项目(一)springboot多模块工程(4)使用easycode自定义自己的代码模板
easycode plugin
前言
前面博文中已经集成了mybatis-plus定义了一套自己的基础crud基类,通过继承这一套基类可以实现以极少代码即可使用一套基本crud的接口。本文是介绍如何使用easycode plugin来自定义自己的一套自动生成代码模板,实现仅需设计好表,通过使用该插件自动生成这一套基本crud的接口。
easycode 安装
- 使用idea,file-settings-plugins,在marketplace中搜索easycode,install。
- 安装完后都是重启idea生效。
自定义模板
settings-OtherSettings下会多出Easy Code项,这里就包含了默认的配置及生成代码模板。就是要在这里复制默认模板修改成自己的模板。
修改Global Config。
由于建立了BaseHenEntity,并定义了4个公共属性,计划生成的实体将会继承这个基本实体类,所以在生成的实体中需要排除生成这4个公共属性。
- 先复制默认模板,自定义模板。
- 再修改去掉不需要生成的属性。
修改Template Setting
这里是重点,修改让各个类对应继承先前已经建立的基本类。同时修改一些名称、导入包等让模板符合项目的需要。
- 同上面globalconfig的修改,复制模板组。
- 修改模板。
- entity
- dao
- mapper
- service
- impl
- controller
创建表生成代码
以前面创建的sys_user为例,在database中选择该表右键-easycode-generate code 。分别在dao/biz/web下生成对应的entity、mapper/service/controller类。注意选择对应的模块工程。
查看生成的代码有什么问题,对应去修改生成模板。直到生成无需对生成的代码做任何修改即可用的时候就成了。
调试
利用swagger2调用接口查看是否Ok,这个就不写了,在前面集成swagger2中有提到。也可以自行用其他方式。
问题汇总
- 前面建立的BaseController 获取对应的service bean 不能通过注解@Resource 或 @Autowired注入。修改为使用上下文通过class获取,已改。
- 自定义easycode模板 globalconfig不生效,需要使用该配置的模板在最开始引入$init。
- controller 模板中引用service对象.callMethod() 调用方法不生成,不知道什么问题,在"."后面打个空格可以生成。
- 自动生成的接口,保存时id生成一长串数字,并非从1开始。这个问题,entity id字段注解 @TableId(type = IdType.AUTO)。修改entity生成代码模板对应即可。