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

做肮脏交义的网站校园网搭建

做肮脏交义的网站,校园网搭建,wordpress 用户介绍,专业柳州网站建设价格ProxyFactory选择cglib或jdk动态代理原理 ProxyFactory在生成代理对象之前需要决定到底是使用JDK动态代理还是CGLIB技术#xff1a; 代理对象创建过程 JdkDynamicAopProxy 在构造JdkDynamicAopProxy对象时#xff0c;会先拿到被代理对象自己所实现的接口#xff0c;并且…ProxyFactory选择cglib或jdk动态代理原理 ProxyFactory在生成代理对象之前需要决定到底是使用JDK动态代理还是CGLIB技术 代理对象创建过程 JdkDynamicAopProxy 在构造JdkDynamicAopProxy对象时会先拿到被代理对象自己所实现的接口并且额外的增加SpringProxy、Advised、DecoratingProxy三个接口组合成一个Class[]并赋值给proxiedInterfaces属性并且检查这些接口中是否定义了equals()、hashcode()方法执行Proxy.newProxyInstance(classLoader, this.proxiedInterfaces, this)得到代理对象JdkDynamicAopProxy作为InvocationHandler代理对象在执行某个方法时会进入到JdkDynamicAopProxy的**invoke()**方法中 ObjenesisCglibAopProxy 创建Enhancer对象设置Enhancer的superClass为通过ProxyFactory.setTarget()所设置的对象的类设置Enhancer的interfaces为通过ProxyFactory.addInterface()所添加的接口以及SpringProxy、Advised、DecoratingProxy接口设置Enhancer的Callbacks为DynamicAdvisedInterceptor最后创建一个代理对象代理对象在执行某个方法时会进入到DynamicAdvisedInterceptor的intercept()方法中 代理对象执行过程 在使用ProxyFactory创建代理对象之前需要往ProxyFactory先添加Advisor代理对象在执行某个方法时会把ProxyFactory中的Advisor拿出来和当前正在执行的方法进行匹配筛选把和方法所匹配的Advisor适配成MethodInterceptor把和当前方法匹配的MethodInterceptor链以及被代理对象、代理对象、代理类、当前Method对象、方法参数封装为MethodInvocation对象调用MethodInvocation的proceed()方法开始执行各个MethodInterceptor以及被代理对象的对应方法按顺序调用每个MethodInterceptor的invoke()方法并且会把MethodInvocation对象传入invoke()方法直到执行完最后一个MethodInterceptor了就会调用invokeJoinpoint()方法从而执行被代理对象的当前方法 各注解对应的MethodInterceptor Before对应的是AspectJMethodBeforeAdvice在进行动态代理时会把AspectJMethodBeforeAdvice转成MethodBeforeAdviceInterceptor先执行advice对应的方法再执行MethodInvocation的proceed()会执行下一个Interceptor如果没有下一个Interceptor了会执行target对应的方法After对应的是AspectJAfterAdvice直接实现了MethodInterceptor先执行MethodInvocation的proceed()会执行下一个Interceptor如果没有下一个Interceptor了会执行target对应的方法再执行advice对应的方法Around对应的是AspectJAroundAdvice直接实现了MethodInterceptor直接执行advice对应的方法由Around自己决定要不要继续往后面调用AfterThrowing对应的是AspectJAfterThrowingAdvice直接实现了MethodInterceptor先执行MethodInvocation的proceed()会执行下一个Interceptor如果没有下一个Interceptor了会执行target对应的方法如果上面抛了Throwable那么则会执行advice对应的方法AfterReturning对应的是AspectJAfterReturningAdvice在进行动态代理时会把AspectJAfterReturningAdvice转成AfterReturningAdviceInterceptor先执行MethodInvocation的proceed()会执行下一个Interceptor如果没有下一个Interceptor了会执行target对应的方法执行上面的方法后得到最终的方法的返回值再执行Advice对应的方法 AbstractAdvisorAutoProxyCreator 这个注解主要就是往Spring容器中添加了一个AnnotationAwareAspectJAutoProxyCreator类型的Bean。 AspectJAwareAdvisorAutoProxyCreator继承了AbstractAdvisorAutoProxyCreator重写了findCandidateAdvisors()方法AbstractAdvisorAutoProxyCreator只能找到所有Advisor类型的Bean对象但是AspectJAwareAdvisorAutoProxyCreator除开可以找到所有Advisor类型的Bean对象还能把Aspect注解所标注的Bean中的Before等注解及方法进行解析并生成对应的Advisor对象。 ​ 所以我们可以理解EnableAspectJAutoProxy其实就是像Spring容器中添加了一个AbstractAdvisorAutoProxyCreator类型的Bean从而开启了AOP并且还会解析Before等注解生成Advisor。 Spring中AOP原理流程图 Spring中AOP底层原理| ProcessOn免费在线作图,在线流程图,在线思维导图
http://www.hkea.cn/news/14353073/

相关文章:

  • 下载源代码的网站wordpress支持代码
  • 广东省建设职业注册中心网站深圳提供网站建设制作
  • seo网站推广软件重庆公众号开发服务
  • 网站建设费入如保入账成都建设网站公司哪家好
  • 网站备案时核验单wordpress设置访客登陆
  • 建立网站站点wordpress模板格式
  • 寿光网站建设哪家好长春是不是要封城了
  • 网站建设项目报价吉林省水土保持生态建设网站
  • 常见的制作网站的工具开发一个小程序
  • 百度网站官网网站seo 工具
  • 淘宝作图在哪个网站上做图江西企业网站建设
  • seo 对网站有什么影响网站树状结构图怎么做
  • 中小企业查询网站郑州高端网站制作
  • 深圳网站建设找哪家公司好沙洋网页定制
  • 做书籍的网站WordPress主题VR插件
  • 三五互联网站后台 天堂资源地址在线
  • 建设网站用什么软件下载阿里云网站建设 部署与发布
  • 门户网站开发步骤网站原则
  • 免费个人网站空间申请门户网站模块
  • 泰州网站建设案例网站建设itcask
  • 金色财经网站开发画室网站模板
  • 网页制作与网站建设完全学习手册上海网页设计公司怎么样
  • 股票网站排名哪个好合肥seo优化外包公司
  • 网站群建设路径网站建设亻金手指下拉
  • 个人如何制作网站源码wordpress获取数组长度
  • 网站非法收录用户信息百度竞价点击神器
  • 普洱网站建设wordpress 缓慢
  • 设计网站大全扣西湖南岚鸿首选wordpress怎么启用sll证书
  • 在百度上怎么建立网站吗网站怎样恶意刷
  • 网站需求建设书重庆市建设节能中心网站