代码生成器
API开发时首先使用代码生成器生成目录结构以及class主体。
代码生成器位置:
代码生成器工程为
so-fast-mpg
,该工程有两种启动方式,1.启动SoFastGeneratorUiServerApplication文件;2.启动TestSoFastGeneratorApplication文件。两种方式均可。推荐使用方式2,基于test方式进行启动。
so-fast-visual
└── so-fast-mpg
└── test
└── java
├── TestSoFastGeneratorApplication.java // 代码生成器
代码生成器配置:
public static void main(String[] args) {
GeneratorConfig config = GeneratorConfig.builder().jdbcUrl("jdbc:mysql://x.x.x.x:3306/so-fast")
.userName("db-username") // TODO 修改为自己数据库用户名
.password("db-password") // TODO 修改为自己数据库密码
.driverClassName("com.mysql.cj.jdbc.Driver")
.basePackage("com.sofast.biz") // TODO 设置要生成的业务包路径
.port(9102) // TODO 设置服务端口号
.build();
MybatisPlusToolsApplication.run(config);
}
运行:
右键执行main函数即可。服务启动之后,在浏览器打开地址http://localhost:9102/
输出配置:
代码生成器提供对Entity、Mapper、Service、Controller的全部生成。so-fast框架提供了模板,可通过上传模板进行自定义代码格式生成。
这里需要注意「输出路径」,一定要写正确,这里的输出路径是开发工程中的package路径,根据自己业务期望位置进行填写,比如我希望生成到biz目录下,并新建一个test业务模块,在test业务模块中创建自己的Controller、Service、Mapper、Entity,我期望的目录结构如下:文件模板位置:
doc └── code_tpls ├── controller.java.btl ├── entity.java.btl ├── mapper.java.btl ├── service.java.btl └── serviceimpl.java.btl
biz
├── test
│ ├── controller
│ ├── entity
│ ├── mapper
│ └── service
│ └── impl
另外,针对entity和controller需要在页面进行一些设置,便于生成更符合要求的代码。
点击Entity行的「操作」按钮,打开「策略配置」选项,将启用lombok、生成注解、生成swagger2注解选项打开并保存。
点击Controller行的「操作」按钮,打开「策略配置」选项,在「Controller的超类名称」栏中填入Controller的父类「com.sofast.core.framework.web.controller.BaseController」,so-fast要求所有的Controller类必须继承该父类。另外将「启用REST接口注解」选项打开并保存。
代码生成:
重新回到Table列表页面,选中需要操作的表,并点击「代码生成」按钮
在打开的页面中,输入以下内容,点击「开始生成」进行定制化代码生成。代码会自动生成到工程对应的包下。
注意:因为在「输出路径」已经填写好了,完整的路径,这里的「功能模块名」请不要填写任何东西!!!
如果需要进行重复生成时,可以开启文件覆盖选项,将之前的旧文件覆盖,但使用时要注意,别覆盖了已经编写好的代码!!!
点击「开始生成」后,我们来看下代码生成结果:
如我们预期一样,我们得到了正确的代码结构和代码文件。
常见问题:
代码生成器页面一段时间后,Table列表显示不出来,控制台有Exception抛出,这个是因为数据库连接池问题,过一会刷新页面就正常了。