Getting Start - GreedyStar/generator GitHub Wiki

添加依赖

目前最新版本1.4.0,推荐使用最新版,pom中添加依赖如下:

<dependency>
    <groupId>com.greedystar</groupId>
    <artifactId>generator</artifactId>
    <version>1.4.0</version>
</dependency>

各版本特性详见 :GreedyStar/generator/Releases

注:自1.1.0版本起,框架中移除了JDBC驱动的依赖,请用户自行在项目中添加所需的JDBC驱动依赖。

配置框架

配置公共参数

用户需在项目的 resources 目录下创建 generator.yaml 文件,配置代码生成器的公共参数 ,示例如下:

db: # since v1.1.0
  url: jdbc:mysql://localhost:3306/generator-demo
  username: root
  password: 
author: GreedyStar
packageName: com.greedystar.test
convertor: com.greedystar.test.convertor.CustomConvertor # since v1.3.0
mybatisPlusEnable: false # since v1.4.0 启用mybatis-plus模式
jpaEnable: false         # since v1.4.0 启用JPA模式
swaggerEnable: true      # since v1.4.0 启用swagger
lombokEnable: true       # since v1.4.0 启用lombok
idStrategy: AUTO         # since v1.4.0 主键生成策略
fileOverride: true       # since v1.4.0 重名文件覆盖
mapperUnderSource: false # since v1.4.0 MyBatis映射文件放于source目录下
path:
  controller: controller
  service: service.impl
  interf: service # since v1.2.1
  dao: dao
  entity: entity
  mapper: mybatis
name: # since v1.4.0 自定义文件名及类名,$s为固定占位符 
  controller: $sAction
  service: $sServiceImpl
  interf: $sService
  dao: $sDao
  entity: $sDO
  mapper: $sMapper

上述配置将会生成如下路径的代码和Mapper文件:

src/main/java 目录下:

com.greedystar.test.controller.UserAction.java 
com.greedystar.test.service.UserService.java 
com.greedystar.test.service.impl.UserServiceImpl.java 
com.greedystar.test.dao.UserDao.java 
com.greedystar.test.entity.UserDO.java

src/main/resources 目录下:

mybatis/UserMapper.xml

tips:自1.4.0版本起,工具提供了通过编程进行配置的方式,详情请参考 【1.4.0特性】 中 小节 8. 添加通过编程进行配置的方式。

特别注意

  1. path节点下的配置是可选的,例如不配置 controller,则框架不会为用户生成 Controller 层的相关代码。
  2. 1.2.1 版本的新配置 interf 表示 Service 接口的包路径,若不配置则表示不使用接口加实现类的代码结构,框架不为用户生成Service接口。
  3. 1.3.0 版本的新配置 convertor 用于将JDBC类型转换为Java类型,若不配置则采用默认的DefaultConvertor。
  4. 1.4.0 版本中,JPA模式和Mybatis-Plus模式不可同时启用,切上述两个配置均未配置时,则采用默认的MyBatis模式。

自定义模板文件

模板文件是代码生成的基础,框架为用户提供了默认的模板文件,位于 jar包 ftls/ 目录下,默认的模板提供了简单的CRUD代码,用户可根据项目的具体架构自定义模板文件,具体请请参考默认的 ftl 文件和模板文件参数说明。

若无自定义模板的需求,则无需进行以下操作,框架会使用默认代码模板。

若需要自定义模板,则需在项目目录的 resources/ftls/ 目录下放置框架所需的所有模板文件,且保证模板文件名与默认一致。

示例如下

resources 
└── ftls 
    ├── Controller.ftl 
    ├── Dao.ftl 
    ├── Entity.ftl 
    ├── Interface.ftl 
    ├── Mapper.ftl 
    └── Service.ftl

特别注意: 采用自定义模板时,为了保证工具能够找到FreeMarker中声明的异常类,还需要在你的项目中添加FreeMarker的依赖,版本与工具中使用的一样即可,若不添加上述依赖,在生成代码时会提示找不到FreeMarker的异常类 如下:

<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.23</version>
</dependency>

自1.2.0版起,移除 Mapper_M2M.ftl,后续版本中均使用 Mapper.ftl 模板,请用户尤其注意新版本中代码模板自定义过程。

自1.2.1版起,添加 Interface.ftl,用于支持Service层接口和实现类的代码结构。

⚠️ **GitHub.com Fallback** ⚠️