Mybatis插件机制

mybatis的插件机制是由拦截器实现的,也就是说,一旦配置上插件之后,parameterhandler,resultsethandler,statementhandler,executor这四大核心对象,将会生成变身,是一种代码对象,而不再是原身;

1,mybatis插件配置

配置在mybatis-config.xml中

Mybatis插件机制

2、插件的分类

根据功能,可以将插件分为两大类:

第一类:插件是对系统的一种补充,例如在分布式系统中,可以使用插件的方式,实现内存插件、磁盘插件、线性网络插件、Paxos插件等。此类插件等同于组件。

第二类:插件是对系统默认功能的自定义修改,例如mybatis里面自定义插件,它实现的拦截器的功能。此类插件等同于拦截器。

3,拦截对象

  • parameterhandler:处理sql的参数对象;
  • resultsethandler:处理sql的返回结果集;
  • statementhandler:数据库处理对象,用于执行sql的语句;
  • executor:mybatis执行器,用于执行sql的增删改查操作;

Mybatis插件机制

每次调用executor的时候都会经过interceptor接口的拦截

4,mybatis运行过程

a,没有插件的运行过程Mybatis插件机制

b,有插件运行的过程

Mybatis插件机制