MyBatis Generator(MBG)实现插件

实现插件

插件可用于修改或添加到MyBatis Generator生成的对象。 插件必须实现接口org.mybatis.generator.api.Plugin。 插件接口包含许多在代码生成过程的不同阶段调用的方法。 对于任何特定的插件,通常不需要实现整个接口。 因此,大多数插件都应该扩展适配器类org.mybatis.generator.api.PluginAdapter。 适配器类提供基本的插件支持,并为大多数接口方法(类似于Swing适配器类)实现无操作方法。 MyBatis Generator提供了几个插件(都在包org.mybatis.generator.plugins中)。 提供的插件演示了可以使用插件完成的不同类型的任务。 插件的源代码随下载提供,也可以在线查看。 插件生命周期

插件具有生命周期。 在代码生成过程的初始化过程中创建插件,并按顺序调用进程的不同阶段。 以下列表显示了插件的基本生命周期: 通过默认构造函数创建的插件 setContext方法调用 setProperties方法调用 验证方法调用。 如果此方法返回false,那么插件中没有其他方法将被调用 对于配置中的每个表: 初始化方法调用 Java客户端方法:1,2 clientXXXMethodGenerated(Method,TopLevelClass,IntrospectedTable) - 这些方法被调用,因为生成了Java客户端实现类的每个方法。 clientXXXMethodGenerated(Method,Interface,IntrospectedTable) - 这些方法被调用,因为生成了每个Java客户端接口的方法。 clientGenerated(Interface,TopLevelClass,IntrospectedTable)方法调用 模型方法:1 modelFieldGenerated,modelGetterMethodGenerated,modelSetterMethod为类中的每个字段生成 modelExampleClassGenerated(TopLevelClass,IntrospectedTable) modelPrimaryKeyClassGenerated(TopLevelClass,IntrospectedTable) modelBaseRecordClassGenerated(TopLevelClass,IntrospectedTable) modelRecordWithBLOBsClassGenerated(TopLevelClass,IntrospectedTable) SQL Map方法:1 sqlMapXXXElementGenerated(XmlElement,IntrospectedTable) - 这些方法被调用,因为SQL映射的每个元素都被生成 sqlMapDocumentGenerated(Document,IntrospectedTable) sqlMapDocument(GeneratedXmlFile,IntrospectedTable) contextGenerateAdditionalJavaFiles(IntrospectedTable)方法调用 contextGenerateAdditionalXmlFiles(IntrospectedTable)方法调用 contextGenerateAdditionalJavaFiles()方法调用 contextGenerateAdditionalXmlFiles()方法调用 提示: 1 - 这些方法将被封装的代码生成器调用。 如果您提供自定义代码生成器,则只有在自定义代码生成器调用它们时才会调用这些方法。 2 - Java客户端方法只会被调用是一个Java客户端生成器被配置。 编写插件

实现插件的最佳方式是扩展org.mybatis.generator.api.PluginAdapter类,并仅覆盖插件中需要的特定方法。 插件接口中的方法可用于修改默认生成的代码,或添加其他生成的代码。 使用插件可以完成的事情的例子有: 将自定义注释添加到生成的方法 向生成的类添加其他方法 向生成的XML文件添加其他元素 生成其他Java文件 生成其他XML文件 将始终调用contextXXX方法。 其他方法由打包的代码生成器调用,只有当表的规则将导致生成特定元素时。 例如,如果表没有主键,则不会调用modelPrimaryKeyClassGenerated(TopLevelClass,IntrospectedTable)方法。 返回布尔值的方法可用于绕过代码生成。 如果这些方法中的任何一个返回false,那么相关项将不会添加到生成的代码中。 如果配置了多个插件,则从方法返回false的第一个插件将导致MyBatis Generator在所有其他插件中停止调用该方法。 如果您有一个插件的想法,请随时在用户列表中提出有关问题。 我们来帮忙!
原文: Implementing Plugins

相关阅读:

MyBatis Generator (MBG) 代码生成器简介

MyBatis Generator 代码生成器 快速入门指南

MyBatis Generator XML 配置文件参考

运行 MyBatis Generator 后的任务

运行MyBatis Generator

MyBatis Generator中的新功能

SSM框架——使用 MyBatis Generator 生成代码,包括:Model、Dao、Mapping

从源码构建

扩展MyBatis生成器

日志信息

提供的插件

设计哲学与致歉


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值