首页 > 社交 > 科普中国

Mybatis源码学习

常驻编辑 科普中国 2022-12-04 都会   分布式   初始化   缓存   二级缓存   源码   接口   级别   对象   成本   类型   代码   环境   数据库   方法   数据   科技
H7N拜客生活常识网

@Intercepts({@Signature(
类型=执行者。班级,
方法=“更新”,
args={映射语句。类,对象。班级})})
公共类ExamplePlugin实现拦截器{
公共对象拦截(调用调用)抛出Throwable{
返回调用。继续();
}
公共对象插件(对象目标){
返回插件。包装(目标,这个);
}
publicvoidsetProperties(属性属性){
}
}

Interceptor#plugin表示什么时候拦截H7N拜客生活常识网

Interceptor#intercept拦截的具体操作现在可以在♬上面四个对象创建后,会调用interceptorChain.pluginAll(statementHandler)方法拦截H7N拜客生活常识网

现在看Plugin#wrapH7N拜客生活常识网

publicstaticObjectwrap(Objecttarget,Interceptorinterceptor){
Map,Set>signatureMap=getSignatureMap(拦截器);
类<?>类型=目标。得到类();
类<?>[]interfaces=getAllInterfaces(type,signatureMap);
如果(接口。长度>0){
返回Proxy.newProxyInstance(
类型。获取类加载器(),接口,
新插件(目标、拦截器、signatureMap));
}
返回目标;
}

@覆盖
publicObjectinvoke(Objectproxy,Methodmethod,Object[]args)throwsThrowable{
尝试{
Setmethods=signatureMap.get(method.getDeclaringClass());
如果(方法!=空&&方法。包含(方法)){
返回拦截器。拦截(新调用(目标,方法,参数));
}
返回方法。调用(目标,参数);
}赶上(异常e){
抛出ExceptionUtil。展开抛出(e);
}
}

可以看出最后返回的也是代理类H7N拜客生活常识网

参考

https://mp.weixin.qq.com/s/J3ac3WvCXMSZNoYaUGktMw

https://mp.weixin...

相关阅读:

  • 万用金多久到账(申请万用金一般都会通过吗)
  • 1969年属鸡的幸运数字,属鸡的幸运数字是多少
  • 鍏斿瓙鎭嬬埍鎵嬪唽,卯兔的最完整恋爱手册
  • 生肖兔:一生感情多磨难,属兔人情感坎坷
  • 难受孕的女性,身体都会有这四个信号,需要及时调理
  • 迪士尼是许多人向往的地方,它深受喜欢的理由是什么?
  • 孩子总被欺负,你会怎么做?国外教师:绕开霸凌者和他父母
  • 峰回路转:人生几何
  • 如何提高自己的为人处世能力?
  • 发脾气,是孩子发出的“求救”信号
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。