代码生成器

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/

mpg-1

输出配置:

mpg-2

mpg-3

代码生成器提供对Entity、Mapper、Service、Controller的全部生成。so-fast框架提供了模板,可通过上传模板进行自定义代码格式生成。

文件模板位置:

doc
└── code_tpls
    ├── controller.java.btl
    ├── entity.java.btl
    ├── mapper.java.btl
    ├── service.java.btl
    └── serviceimpl.java.btl
这里需要注意「输出路径」,一定要写正确,这里的输出路径是开发工程中的package路径,根据自己业务期望位置进行填写,比如我希望生成到biz目录下,并新建一个test业务模块,在test业务模块中创建自己的Controller、Service、Mapper、Entity,我期望的目录结构如下:
biz
├── test
│   ├── controller
│   ├── entity
│   ├── mapper
│   └── service
│       └── impl

另外,针对entity和controller需要在页面进行一些设置,便于生成更符合要求的代码。

点击Entity行的「操作」按钮,打开「策略配置」选项,将启用lombok、生成注解、生成swagger2注解选项打开并保存。

mpg-5

点击Controller行的「操作」按钮,打开「策略配置」选项,在「Controller的超类名称」栏中填入Controller的父类「com.sofast.core.framework.web.controller.BaseController」,so-fast要求所有的Controller类必须继承该父类。另外将「启用REST接口注解」选项打开并保存。

mpg-6

代码生成:

重新回到Table列表页面,选中需要操作的表,并点击「代码生成」按钮

mpg-7

在打开的页面中,输入以下内容,点击「开始生成」进行定制化代码生成。代码会自动生成到工程对应的包下。

mpg-8

注意:因为在「输出路径」已经填写好了,完整的路径,这里的「功能模块名」请不要填写任何东西!!!

如果需要进行重复生成时,可以开启文件覆盖选项,将之前的旧文件覆盖,但使用时要注意,别覆盖了已经编写好的代码!!!

点击「开始生成」后,我们来看下代码生成结果:

mpg-9

如我们预期一样,我们得到了正确的代码结构和代码文件。

常见问题:

代码生成器页面一段时间后,Table列表显示不出来,控制台有Exception抛出,这个是因为数据库连接池问题,过一会刷新页面就正常了。

Copyright © 2020. 恩梯梯数据(中国)信息技术有限公司. all right reserved,powered by Gitbook该文件修订时间: 2021-02-04 11:29:36

results matching ""

    No results matching ""