当前位置: 首页 > news >正文

html 学习网站搜索引擎网址

html 学习网站,搜索引擎网址,国内做会展比较好的公司,多多在线免费观看电视剧在了解插件开发之前,我们先总体的来梳理一下Mybatis的大致执行流程: 1.new SqlSessionFactoryBuilder().build(inputStream):先根据配置文件(包含了全局配置文件和映射配置文件)初始化一个对象Configuration(这里对象里…

在了解插件开发之前,我们先总体的来梳理一下Mybatis的大致执行流程:

1.new SqlSessionFactoryBuilder().build(inputStream):先根据配置文件(包含了全局配置文件和映射配置文件)初始化一个对象Configuration(这里对象里包含了所有配置文件里的标签信息,这里包含的每个MappedStatement对象就代表一个增删改查的标签),然后在将这个对象传入buile方法build(configuration),返回一个DefaultSqlSessionFactory对象实例(它是接口SqlSessionFactory的实现类)。

2.sqlSessionFactory.openSession():实际上是DefaultSqlSessionFactory对象实例调用openSessionFromDataSource,根据session(执行器类型)和全局变量的设置:

创建一个Executor(它是执行sql查询语句的):

最后返回对象DefaultSqlSession(configuration(所有配置信息), executor(执行sql的执行器), autoCommit);

3.DefaultSqlSession.getMapper():获取到对应的Mapper接口的代理对象,MapperProxy(代理对象),这个代理对象里包含有Mapper接口里的所有方法以及和数据库之间的会话DefaultSqlSession对象,而这个对象又包含:对象DefaultSqlSession(configuration(所有配置信息), executor(执行sql的执行器), autoCommit);

4.userMapper.selectByPrimaryKey(1):执行增删改查方法

①MapperProxy调用invoke方法

这里将接口方法转换为MapperMethod,然后调用executor对象执行增删改查的操作

②执行增删改查的过程中Executor会创建StatementHandler对象和ParameterHandler、ResultSetHandler对象

③调用StatementHandler执行sql语句,调用ParameterHandler通过typeHandler设置sql语句中的参数,调用ResultSetHandler通过typeHandler封装sql语句查询出来的结果集

在Mybatis执行流程中涉及四个关键的对象Executor,StatementHandler,ParameterHandler,ResultSetHandler,了解一个与插件开发有关的重要的信息:这四个对象在创建完成返回之前,都会被一个方法过滤一遍的代码:intercepterChain.pluginAll(xxxxHandler/Executor)

上述的方法源码:

/** * 每一个拦截器对目标类都进行一次代理 * @paramtarget * @return 层层代理后的对象 */  public Object  pluginAll(Object target) {  for(Interceptor interceptor : interceptors) {  target= interceptor.plugin(target);  }  return target;  
}

很明显,四大对象在创建返回之前,被一组过滤器逐一的拦截过滤了一遍,这个拦截器类型的接口Interceptor就是插件要实现的接口。所以说,我们开发插件的本质其实就是(AOP面向切面编程思想的一个切面),在四大对象返回之前,我们可以对它拦截后创建一个代理对象,对原对象进行封装,加工,增加我们想要的各种功能,然后用代理对象替换掉原对象。这就是Mybatis插件的本质! 

 

 

http://www.yayakq.cn/news/19834/

相关文章:

  • 网站开发 0755电商网站 cms
  • 电子商务网站开发技术和工具有哪些简述网站的创建流程
  • 六站合一的优势域名网址
  • 手机网站开通微信支付重庆网站推广招聘
  • 夸克看网站要钱吗贵阳专用网站建设
  • 建设企业网站就等于开展网络营销网站无法连接服务器
  • 档案网站建设外包公司做招商加盟的网站
  • 网站背景图片代码网站推广软文代发
  • 淘宝联盟做网站网站建设哪里去学
  • 公司免费网站长沙市做网站公司
  • 湖北勘察设计协会网站智慧养老网站开发
  • 公司建设网站价格wordpress放哪个目录
  • 贵州省住房及城乡建设部网站做企业网站有什么用
  • 如何做发卡网站世界500强企业正威集团生死局
  • 做网站赚钱吗 怎么赚钱湖南长沙门户网站
  • 什么叫定制网站网站建设怎么用长尾做标题
  • 可信网站验证服务证书小米3g 架设wordpress
  • 长沙网站制作附近找装修公司
  • 深圳网站设计与开发开化网络营销怎么做
  • 静态网站建设的流程竞品网站分析
  • 最好用的免费建站平台怀宁县住房和城乡建设局网站
  • 北京最大做网站的公司永康哪有做网站的公司
  • 社区门户网站规范化建设5000多一年的网站建站
  • 百度站长反馈九洲建设app
  • 普定县建设局网站wordpress 注册没密码
  • 北京网站制作到诺然网络组建论文
  • 上海金山网站建设公司廊坊网站搜索优化
  • 用自己电脑做网站 dns铜川市网站建设
  • 闸北东莞网站建设网站建设的技术团队
  • 网站建设必会的软件有哪些最有性价比的网站建设