1、工廠模式:SqlSessionFactroy 的實現類DefaultSqlSessionFactory初始化的DefaultSqlSession
2、動態代理:依賴注入的mapper實例是代理類MapperProxy 等等
3、策略模式:Executor的實現類是根據枚舉實例ExecutorType策略生成的執行器
4、裝飾器模式:CachingExecutor在開啓二級緩存後生效,裝飾第三條生成的Executor,表面是CachingExecutor,實際是第三條的執行器
5、委託模式:MapperProxy 的代理方法都是由mapperMethod.execute(sqlSession, args)執行,最終是由DefaultSqlSession的方法執行,所有的DefaultSqlSession的方法都是委託給了之前生成的Executor來執行的
6、責任鏈模式:所有的mybatis插件在執行的時候都是責任鏈模式,生成Executor的樣例代碼:executor = (Executor) interceptorChain.pluginAll(executor);
7、模板模式:最簡單的
8、建造者模式: SqlSessionFactoryBuilder 等等