参考答案
Mybatis仅可编写、针对下面4种接口的插件:
- ParameterHandler
- ResultSetHandler
- StatementHandler
- Executor
Mybatis使用JDK的动态代理,为需要拦截的接口生成代理对象以实现接口方法拦截功能。
每当执行这4种接口对象的方法时,就会进入拦截方法,具体就是InvocationHandler的invoke()方法。
当然,只会拦截那些你指定需要拦截的方法。
实现Mybatis的Interceptor接口,并复写intercept()方法,然后在给插件编写注解,指定要拦截哪一个接口的哪些方法即可。
记住,别忘了要在配置文件中配置你编写的插件。
以上,是Java面试题【简述Mybatis的插件运行原理,以及如何编写一个插件】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—