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.javasrc/main/resources 目录下:
mybatis/UserMapper.xmltips:自1.4.0版本起,工具提供了通过编程进行配置的方式,详情请参考 【1.4.0特性】 中 小节 8. 添加通过编程进行配置的方式。
特别注意:
- path节点下的配置是可选的,例如不配置 controller,则框架不会为用户生成 Controller 层的相关代码。
- 1.2.1 版本的新配置 interf 表示 Service 接口的包路径,若不配置则表示不使用接口加实现类的代码结构,框架不为用户生成Service接口。
- 1.3.0 版本的新配置 convertor 用于将JDBC类型转换为Java类型,若不配置则采用默认的DefaultConvertor。
- 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层接口和实现类的代码结构。