Mybatis-Plus-Generator源码解读

2023-05-16

首先,从AutoGenerator类的execute方法进入

/**
     * 生成代码
     */
    public void execute() {
        logger.debug("==========================准备生成文件...==========================");
        // 初始化配置
        if (null == config) {
            config = new ConfigBuilder(packageInfo, dataSource, strategy, template, globalConfig);
            if (null != injectionConfig) {
                injectionConfig.setConfig(config);
            }
        }
        if (null == templateEngine) {
            // 为了兼容之前逻辑,采用 Velocity 引擎 【 默认 】
            templateEngine = new VelocityTemplateEngine();
        }
        // 模板引擎初始化执行文件输出
        templateEngine.init(this.pretreatmentConfigBuilder(config)).mkdirs().batchOutput().open();
        logger.debug("==========================文件生成完成!!!==========================");
    }

非常明显,首先初始化配置,原有的配置。包括:packageInfo, dataSource, strategy, template, globalConfig

再则是初始化自定义的配置,在injectionConfig中,然后是创建目录,再者是生成文件输出。

非常清洗的整个生成流程

在对应的生成包中存在已经定义好的通用模板,分别对应生成器支持的三种模板

 在com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine#getObjectMap中存储对对象可以在,对应的模板文件中取出,如:在controller.java.ftl中取出${date}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mybatis-Plus-Generator源码解读 的相关文章

  • Mybatis Generator:如何生成指定模式的所有表

    Mysql数据库总共有4个模式 我只想生成一个名为 booking 的指定模式 但它总是为所有模式生成所有表 所以我需要你的帮助 下面是我的generatorConfig xml
  • 在其消费者中处理生成器异常

    这是后续处理生成器中抛出的异常 https stackoverflow com q 11366064 989121并讨论一个更普遍的问题 我有一个读取不同格式数据的函数 所有格式都是面向行或记录的 并且对于每种格式都有一个专用的解析函数 作
  • Keras 拟合生成器 - ValueError:无法找到可以处理输入的数据适配器

    我正在尝试使用自定义生成器来适应我的深度学习模型 When i fit the model it shows me this error 我试图找到类似的问题 但所有答案都是关于将列表转换为 numpy 数组 我认为这不是这个错误的问题 我
  • 嵌套 mybatis 映射

    我不知道如何在复杂的对象中使用 mybatis 结果 我有以下映射器类 public interface StationMapper MapKey stationId Map
  • Keras 中的 fit_generator 是否应该在每个纪元后重置生成器?

    我正在尝试使用fit generator使用自定义生成器来读取对于内存来说太大的数据 我想要训练 125 万行 因此我让生成器一次生成 50 000 行 fit generator has 25 steps per epoch 我认为每个周
  • Symfony 1.4 更改管理生成器操作或模板

    如何修改管理员生成的模块 操作和模板 它们存储在缓存中 但我需要修改它们 模板 有可能吗 问候 当然可以 只需将模板文件从缓存复制到相关的module templates后台文件夹中的模板 然后修改 扩展 对于操作 将相同命名的操作添加到m
  • Mac OS Mavericks 上的 NPM 安装问题

    我正在尝试掌握 AngularJS NodeJS 和 Ruby on Rails 当尝试安装 yeoman grunt 等 npm 软件包时 我在终端中收到一个错误 如下所示 npm ERR Error EACCES open Users
  • 如何有条件地停止 JavaScript 生成器?

    使用如下所示的迭代器 function idMaker let index 0 while index lt 3 yield index 如何确保根据情况提前停止发电机 function idMaker let index 0 while
  • 比使用“任务/生产/消费”更好的方法将惰性集合表示为协程

    使用起来非常方便Tasks表达一个惰性集合 生成器 Eg function fib Task do prev prev 0 prev 1 produce prev while true cur prev prev prev produce
  • Python 自定义 Zipf 数字生成器性能不佳

    我需要一个类似 Zipf 的自定义数字生成器 因为numpy random zipf功能没有达到我所需要的 首先 其alpha必须大于1 0我需要一个 alpha0 5 其次 它的基数与样本大小直接相关 我需要制作比基数更多的样本 例如从只
  • 使用 myBatis 从数据库中以 byte[] 的形式获取 blob

    我在一个项目中使用 spring MyBatis 1 2 0 其中有一个查询从 Oracle 11g 数据库中的 BLOB 字段获取数据 我想以字节数组 byte 的形式检索该字段 我的代码是
  • 从发电机生成

    我有一个生成器 它接受一个数字作为参数并生成其他数字 我想使用这个生成器生成的数字并将它们作为参数传递给同一个生成器 创建一个一定长度的链 例如 mygenerator 2 生成 5 4 和 6 将 mygenerator 应用于这些数字中
  • python 3 打印生成器

    当我处理 print 函数 Python 3 时出现问题 当我寻找一系列的总和时 我可能会使用以下代码模式 gt gt gt sum i for i in range 101 但是当我倾向于检查我制作的系列时 我选择 print 并假设它会
  • 测试代码覆盖 javascript es6 生成器 (redux-saga / istanbul.js)

    我使用 redux saga 编写了一些测试 我尝试使用 istanbul js 生成代码覆盖率 它对于大多数代码都工作得很好 但是传奇的结果被破坏了 看起来像是随机信息 有人知道如何解决这个问题吗 我个人使用 Jest 它包括代码覆盖率
  • Python 3.x 列表理解 VS 元组生成器

    我想使用内存 速度或其他什么原因吗 tuple i for i in range 5000 代替 i for i in range 5000 如果我不介意元组的不变性 基本上 列表理解比生成器表达式更快 因为 它的迭代在 C 中执行 请阅读
  • 高效生成所有小于 N 的合数(及其因式分解)

    我想构建一个高效的 Python 迭代器 生成器 它会产生 所有小于 N 的合数 连同他们的质因数分解 我将其称为 composites with factors 假设我们已经有小于 N 的素数列表 或者可以执行相同操作的素数生成器 请注意
  • Javascript 生成器:理解它们

    我很确定我对生成器的理解本质上是被破坏的 所有在线资源似乎都是冲突的 这导致了极其困难和令人困惑的学习体验 据我了解 yield关键字使当前正在执行的代码块能够等待一个值而不是抛出要在回调内执行的剩余代码 因此 正如大多数教程所指出的 您可
  • 如何知道生成的序列最多是一定长度

    我想知道生成的序列是否少于 2 个条目 gt gt gt def sequence for i in xrange secret yield i 我的低效方法是创建一个列表 并测量其长度 gt gt gt secret 5 gt gt gt
  • C# 的快速线程安全随机数生成器

    我需要在多个正在运行的线程中快速生成随机浮点数 我尝试过使用System Random 但它对于我的需求来说太慢了 并且它在多个线程中返回相同的数字 当我在单线程中运行应用程序时 它工作正常 此外 我需要确保生成的数字在 0 到 100 之
  • 使用 python 生成器高效创建 scipy.lil_matrix

    我有一个生成单一维度的生成器numpy arrays 的长度相同 我想要一个包含该数据的稀疏矩阵 行的生成顺序与我希望它们出现在最终矩阵中的顺序相同 csr矩阵优于lil矩阵 但我认为后者在我描述的场景中更容易构建 假设row gen是一个

随机推荐

  • python多线程爬虫与单线程爬虫效率效率对比

    前言 我们之前写的爬虫都是单个线程的 xff1f 这怎么够 xff1f 一旦一个地方卡到不动了 xff0c 那不就永远等待下去了 xff1f 为此我们可以使用多线程或者多进程来处理 首先声明一点 xff01 多线程和多进程是不一样的 xff
  • python数据分析-基于Python的房屋均价数据可视化分析

    1 内容简介 首先通过爬虫采集上所有常熟售房网房源数据 xff0c 并对采集到的数据进行清洗 xff1b 然后 xff0c 对清洗后的数据进行可视化分析 xff0c 我们可以了解到目前市面上不同地区房源均价及房源分布情况 xff0c 帮助我
  • python利用pymysql迁移MYSQL数据库数据

    1 前言 pymysql是一个第三方的模块 xff0c 使用前需要安装 2 安装 pip install pymysql 3 基本使用 1 导入模块 from pymysql import connect 2 Connection 对象 目
  • Python与设计模式–单例模式

    Python与设计模式 单例模式 一 单例模式概述 保证一个类仅有一个实例 xff0c 并提供一个访问它的全局访问点 二 在Python中实现单例模式 方法一 重写 new 方法 span class token keyword class
  • Golang报错:invalid character ‘ï‘ looking for beginning of value

    原因一 xff1a 在使用Golang解析json文件的时候 xff0c 被这个问题困扰了足足一个小时 xff0c 竟然是因为编码方式不同导致 点击file settings Editor File Encodings 将project e
  • css自定义盒子形状及动画应用

    css自定义盒子形状及动画应用 span class token tag span class token tag span class token punctuation lt span style span span class tok
  • Ubuntu 20.04.3 部署NAS于蜗牛星际C

    Ubuntu 20 04 3 LTS 部署NAS 1 硬件配置2 Ubuntu 20 04 3 镜像下载3 更新国内镜像源 xff08 清华 中科大 阿里 网易 xff09 4 安装系列软件4 1 ssh远程登陆软件4 2 安装vim软件4
  • 最简ubuntu18.04系统分区教程

    最简ubuntu18 04系统分区教程 一 在分区之前先介绍一下ubuntu的文件系统二 分区详情 一 在分区之前先介绍一下ubuntu的文件系统 1 swap xff1a 用作虚拟内存 xff0c 这个要和自己的物理内存一样大 2G 10
  • Ubuntu20.04 错误提醒:无法修正错误

    最近安装完Ubuntu 20 04系统 xff0c 并且更改完镜像源之后 xff0c 在后续的软件安装中发现总是报如下的错误 xff1a 列软件包有未满足的依赖关系 xff1a aptitude 依赖 libapt pkg5 0 gt 61
  • 树莓派 docker 安装homeassistant

    在树莓派上安装新的docker版本 卸载旧版本的docker span class token function sudo span span class token function apt get span remove span cl
  • Centos8安装smaba无法访问文件夹

    前期的安装步骤参考上一篇文章 xff1b Ubuntu 20 04 3 部署NAS于蜗牛星际C 在Centos上安装好samba之后 xff0c 由于SELinux属于默认开启状态 xff0c 因此会出现相关文件夹没有权限无法访问的情况 x
  • MacBook M12020使用笔记

    1 安装软件 1 1 安装brew 安装brew xff08 知乎高手写的脚本 xff0c 可以选择国内镜像源 xff09 bin zsh c span class token string 34 span class token vari
  • Monty Hall Problem(三门问题)的数学证明、理解及python实现

    Monty Hall Problem xff08 三门问题 xff09 的数学证明 理解及python实现 Mounty Hall Problem 三门问题 数学建模与求解问题分析与模型建立 P A 61
  • GitLab-CE 下载安装及使用

    GitLab CE 下载安装及使用 xff08 Ubuntu为例 xff09 一 下载安装 1 安装须知 安装Gitlab需要在4Gb内存以上 xff0c 否则会很卡 xff0c 甚至出现502错误无法访问 下载gitlab下载地址gitl
  • 记一次让自家旧主板支持M2接口固态硬盘的折腾记录

    首先这篇文章是针对小白的 xff0c 大神可以绕路 xff0c 大神可以绕路 xff0c 大神可以绕路 xff0c 重要的事情说三遍 xff01 也不要问我太多高精尖的问题 xff0c 我只是借用了大神已攻克的问题 xff0c 甚至为了偷懒
  • 关于小程序wxml引用js中变量的疑问

    我是个入门小程序的新手 xff0c 最近遇到了一点疑惑 xff0c 请各路大神解答一下 xff0c 十分感谢 xxx wxml span class token operator lt span span class token opera
  • 超详细Windows10/Windows11 子系统(WSL2)安装Ubuntu20.04(带桌面环境)

    目录 前言一 在Windows上安装Linux子系统前提条件安装步骤1 开启开发者模式2 开启 适用于Linux的Windows子系统 3 安装Linux分发版3 1 升级WSL内核3 2 启用虚拟机功能3 3 将 WSL 2 设置为默认版
  • Linux安装ns2(Ubuntu/国产统信UOS系统可用)

    目录 1 安装必要编译工具2 安装tcl8 53 安装tk8 54 安装gcc54 1检查gcc版本4 2安装gcc54 3更改gcc g 43 43 优先级 5 安装ns26 配置环境变量7 测试ns2 此教程适用于ubuntu系统和国产
  • ubuntu 显示未找到wifi适配器

    装好ubuntu 后 wifi不可用 xff0c 显示未找到wifi适配器 xff0c 由于我的网卡是BCM43142 802 11b g n rev 01 比较老 按照这个网址 xff08 https blog csdn net napo
  • Mybatis-Plus-Generator源码解读

    首先 xff0c 从AutoGenerator类的execute方法进入 生成代码 public void execute logger debug 34 61 61 61 61 61 61 61 61 61 61 61 61 61 61