动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

Mybatis插件系统的简单实现

06-19 16:40 565浏览
举报 T字号
  • 大字
  • 中字
  • 小字

说到Mybatis插件,我们先来搞清楚什么是插件。插件是一种遵循一定规范的应用程序接口编写出来的程序,其只能运行在程序规定的系统平台下,而不能脱离指定的平台单独运行。插件必须依赖于应用程序才能发挥自身功能,仅靠插件是无法正常运行的。相反地,应用程序并不需要依赖插件就可以运行,这样一来,插件就可以加载到应用程序上并且动态更新而不会对应用程序造成任何改变。

Mybatis 中提供了一套插件系统供开发者使用,以便其能介入 Mybatis 的运行。例如比较出名的 Mybatis 分页插件 Mybatis-PageHelper 就是利用 Mybatis 提供的插件机制来实现的。

通过 MyBatis 提供的强大机制,使用插件是非常简单的,只需实现Interceptor接口,并指定想要拦截的方法签名即可。

@Intercepts({@Signature(
  type= Executor.class,
  method = "query",
  args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class})})
public class ExamplePlugin implements Interceptor {
  
  public Object intercept(Invocation invocation) throws Throwable {
    // implement pre processing if need
    Object returnObject = invocation.proceed();
    // implement post processing if need
    return returnObject;
  }
}

编写好插件之后,就可以在配置文件进行配置。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- 配置插件 -->
    <plugins>
        <plugin interceptor="ExamplePlugin"/>
    </plugins>
    <mappers>
        <mapper resource="mapper/Test.xml"/>
    </mappers>
</configuration>

而且,在在某种程度上,使用Mybatis插件极大地方便了我们使用Mybatis框架从事相关的开发工作,帮助开发人员减轻工作量,提高效率。

0人推荐
共同学习,写下你的评论
0条评论
代码小兵652
程序员代码小兵652

113篇文章贡献392215字

相关课程 更多>

作者相关文章更多>

推荐相关文章更多>

Java面试题及答案整理

提枪策马乘胜追击04-21 20:01

Spring常见面试题

代码小兵92504-17 16:07

Java零基础实战项目——五子棋

代码小兵98804-25 13:57

Java string类详解

杨晶珍05-11 14:54

6道经典算法面试题

杨晶珍05-12 16:39

发评论

举报

0/150

取消