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