-
velocity简介
- 一个基于Java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。
-
main方法
-
生成演示
- /spring-shiro-training/src/test/java/com/wangzhixuan/generator/MysqlGenerator.java
-
vm模板
-
使用步骤
-
全局配置
- 配置是否开启二级缓存和activeRecord模式等
-
自定义文件命名
- 自定义生成的java代码包括controller、service等的命名规则
-
数据源配置
- 配置读取的数据库的信息,才能更加表生成对应的代码
-
策略配置
- 规定表名生成结构,和代码的继承关系等。
-
包目录配置
- 配置代码生成的包路径
-
注入自定义配置
- 自定义vm模板中等取到的值
- 执行生成
-
生成原理
- 1、从mpg.execute()执行开始,根据执行方法一步步走
-
2、初始化配置
- A、方法:AbstractGenerator.initConfig()
- B、涉及初始化数据源DataSourceConfig,数据表StrategyConfig,包配置PackageConfig,模板TemplateConfig配置,全局的信息GlobalConfig等属性。
- C、就是说你执行前的一些属性设置初始化好,方便接下来的取值。
-
3、创建输出的文件夹
- 方法:mkdirs(config.getPathInfo());
- 就是创建你的java文件,jsp文件最终要输出的目录
-
4、获取上下文
- 方法:analyzeData(ConfigBuilder config)
- 根据全局配置取出controller,service等的包名,超类的类名等变量
- 循环表信息,为每个表设定controller类名,service类名、自定义属性等信息,为渲染vm模板做数据准备
-
5、合成上下文与模板
- 根据表信息生成java文件和jsp文件
- 将模板转化成为文件,使用velocity模板引擎合成数据与模板生成新的文件
- 6、打开输出目录