# 【付费】第17章:Plugin插件功能实现

作者:小傅哥
博客:https://bugstack.cn (opens new window)
星球:https://t.zsxq.com/Ja27ujq (opens new window)

沉淀、分享、成长,让自己和他人都能有所收获!😄

# 一、前言

各类框架诞生的核心是什么?

你是否想过,如果说我们的技术支撑体系中,没有关于动态代理部分的存在,其实也就不会有各类框架的诞生的。因为只有有代理的存在,把我们的自定义行为进行包装,替换或扩展原有对象的操作丰富其行为过程,才能满足我们开发新框架的特性。

而这样的代理无论在 Spring、Mybatis、Dubbo 等框架中,都有着大量的存在,没有代理也就不会有AOP、不会有ORM、不会有RPC。结合着我们本章节继续扩展的 Mybatis Plugin 插件功能同样也是需要代理的存在,才能让我们监听原有对象的行为,扩展自定义的逻辑。

# 二、目标

Mybatis Plugin 的插件功能是非常重要的一个功能点,包括我们可以结合插件的扩展;分页、数据库表路由、监控日志等。而这些核心功能的扩展,都是来自于 Mybatis Plugin 提供对类的代理扩展,并在代理中调用我们自定义插件的逻辑行为。

对于插件的使用,我们会按照 Mybatis 框架提供的拦截器接口,实现自己的功能实现类,并把这个类配置到 Mybatis 的 XML 配置中,如图 17-1 所示 自定义插件配置

图 17-1 自定义插件配置

  • 那么本章节就带着读者一起来实现关于 Mybatis 中 Plugin 插件的功能实现,并结合实现的插件,做自定义的功能扩展来验证这部分内容。
  • 另外本章节涉及到了动态代理的使用,读者如果对 JDK 代理储备不多,也可以先进行一部分提前的补充学习。了解动态代理的一些基本用法。