实现插件
插件可用于修改或添加到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 代码生成器 快速入门指南
SSM框架——使用 MyBatis Generator 生成代码,包括:Model、Dao、Mapping
提供的插件原文地址:https://blog.csdn.net/testcs_dn/article/details/77979078
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。