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

网站开发服务转包合同网站seo入门基础教程

网站开发服务转包合同,网站seo入门基础教程,昆明学院网站建设与维护试题,企业管理软件的价格我的JDK动态代理流程 我梳理的动态代理流程大约是: 如果每一个框架都有自己的BPP,且自己的BPP中都有自己的wrapIfNecessory,那样可能就是一个BPP一个代理类。但通常应该都是各自的框架以提供 Advisior(切面)的方式&am…

我的JDK动态代理流程

我梳理的动态代理流程大约是:

  1. 如果每一个框架都有自己的BPP,且自己的BPP中都有自己的wrapIfNecessory,那样可能就是一个BPP一个代理类。但通常应该都是各自的框架以提供 Advisior(切面)的方式,让AOP的BPP去处理他们的Advisior。

  2. BeanPostProcessor 处理bean的时候,会找到这个bean匹配上的的advisior(切面)的集合。

  3. ProxyFactory 拿到adivisor的集合和目标类之后

    1. 设置当前代理的 advicisor、设置当前代理的目标对象 targetClass,设置当前代理的接口类
    2. 使用Jdk或者cglib动态代理创建代理类createAopProxy().getProxy();​​
  4. 生成代理类:

    1. JDK动态代理

      1. JDK动态代理要求被代理类必须实现方法,否则报错。原因当然和JDK动态代理的原理有关系了。

        public Object getProxy(@Nullable ClassLoader classLoader) {return Proxy.newProxyInstance(classLoader, this.proxiedInterfaces, this);
        }
        
      2. 生成代理类,

        public Class<?> apply(ClassLoader loader, Class<?>[] interfaces) {。。。byte[] proxyClassFile = ProxyGenerator.generateProxyClass(proxyName, interfaces, accessFlags);。。。
        }
        
      3. 生成代理类

        1. 将所有方法包装成ProxyMethod对象

          1. 将Object类中的hashCode、equals、toString方法包装成ProxyMethod对象
          2. 获取代理类接口列表
          3. 遍历每个接口的每个方法,并包装成ProxyMethod对象
        2. 为代理类组装各种字段信息和方法信息

          1. 添加构造器方法,该构造器参数为InvocationHandler类型
          2. 添加静态字段及代理方法
          3. 添加静态字段的初始化方法
        3. 写入class文件

          1. 验证常量池中存在代理类的全限定名
          2. 验证常量池中存在代理类父类的全限定名,即Proxy类
          3. 验证常量池中存在代理类接口的全限定名
          4. 写入class文件前,将常量池设为只读,当前常量池中的变量不允许修改
          5. 每个class文件的前四个字节为魔数,用来确定这个文件是否是一个能被虚拟机接受的class文件,
          6. 后面再跟两个字节的次版本号和两个字节的主版本号
          7. 。。。
          8. 转成二进制文件输出
  5. 在调用代理对象方法时,会在方法内执行super.h.invoke(this, m3, new Object[]{var1});​​。即调用JdkDynamicAopProxy的invoke方法。

    final class JdkDynamicAopProxy implements AopProxy, InvocationHandler, Serializable {// 这里传的是thispublic Object getProxy(@Nullable ClassLoader classLoader) {if (logger.isTraceEnabled()) {logger.trace("Creating JDK dynamic proxy: " + this.advised.getTargetSource());}return Proxy.newProxyInstance(classLoader, this.proxiedInterfaces, this);}
    }public class Proxy implements java.io.Serializable {// super.h = new JdkDynamicAopProxy();protected InvocationHandler h;public static Object newProxyInstance(ClassLoader loader,Class<?>[] interfaces,InvocationHandler h)}public final String getUserByName(String var1) throws  {/***   调用父类的h属性的invoke方法*/return (String)super.h.invoke(this, m3, new Object[]{var1});}
    }
    
  6. JdkDynamicAopProxy的invoke方法

    1. 获取​MethodInterceptor​集合 chain:List<Object> chain = this.advised.getInterceptorsAndDynamicInterceptionAdvice(method, targetClass);​​

    2. 对于拦截器链为空的情况,会直接执行目标方法

    3. 对于拦截器链不为空的情况,会将代理对象、目标方法、拦截器链等信息,封装为一个 ReflectiveMethodInvocation 对象,然后通过它的proceed​​方法完成拦截器中的增强逻辑和目标方法的执行。

      1. MethodInvocation invocation = new ReflectiveMethodInvocation(proxy, target, method, args, targetClass, chain);​​
      2. 调用方法retVal = invocation.proceed();​​

文章转载自:
http://sunburst.dtrz.cn
http://xerantic.dtrz.cn
http://wilbur.dtrz.cn
http://doltish.dtrz.cn
http://dihydroxyacetone.dtrz.cn
http://tactless.dtrz.cn
http://kemalism.dtrz.cn
http://druidism.dtrz.cn
http://coconut.dtrz.cn
http://calcinosis.dtrz.cn
http://superheater.dtrz.cn
http://delouse.dtrz.cn
http://halfling.dtrz.cn
http://keewatin.dtrz.cn
http://crossed.dtrz.cn
http://cinematographic.dtrz.cn
http://cicatrization.dtrz.cn
http://graz.dtrz.cn
http://leave.dtrz.cn
http://dilettantish.dtrz.cn
http://eonian.dtrz.cn
http://unipotent.dtrz.cn
http://gemmulation.dtrz.cn
http://lordliness.dtrz.cn
http://yokeropes.dtrz.cn
http://lensoid.dtrz.cn
http://brachycephalization.dtrz.cn
http://fere.dtrz.cn
http://centimo.dtrz.cn
http://gloxinia.dtrz.cn
http://eo.dtrz.cn
http://mithras.dtrz.cn
http://lumpenproletarian.dtrz.cn
http://gibbose.dtrz.cn
http://squattage.dtrz.cn
http://bianca.dtrz.cn
http://transarctic.dtrz.cn
http://ursa.dtrz.cn
http://zairese.dtrz.cn
http://coaster.dtrz.cn
http://diarize.dtrz.cn
http://torso.dtrz.cn
http://nincompoop.dtrz.cn
http://mou.dtrz.cn
http://hemopolesis.dtrz.cn
http://ornithopter.dtrz.cn
http://clamjamfry.dtrz.cn
http://sporangiophore.dtrz.cn
http://slav.dtrz.cn
http://cathay.dtrz.cn
http://gossamer.dtrz.cn
http://angioma.dtrz.cn
http://conglobate.dtrz.cn
http://characteristic.dtrz.cn
http://parochiaid.dtrz.cn
http://unconformable.dtrz.cn
http://entireness.dtrz.cn
http://wheeler.dtrz.cn
http://inventor.dtrz.cn
http://maximal.dtrz.cn
http://oceanization.dtrz.cn
http://garn.dtrz.cn
http://tealess.dtrz.cn
http://jiggly.dtrz.cn
http://cion.dtrz.cn
http://phyma.dtrz.cn
http://hyperbolist.dtrz.cn
http://edentate.dtrz.cn
http://monographer.dtrz.cn
http://resolutely.dtrz.cn
http://vermifuge.dtrz.cn
http://tzar.dtrz.cn
http://lumbaginous.dtrz.cn
http://rickettsia.dtrz.cn
http://apoenzyme.dtrz.cn
http://isf.dtrz.cn
http://diverticulitis.dtrz.cn
http://misandry.dtrz.cn
http://hexapodic.dtrz.cn
http://oligocarpous.dtrz.cn
http://heart.dtrz.cn
http://ustc.dtrz.cn
http://commemorable.dtrz.cn
http://chloric.dtrz.cn
http://inexpugnable.dtrz.cn
http://brusa.dtrz.cn
http://thenardite.dtrz.cn
http://interrelated.dtrz.cn
http://taw.dtrz.cn
http://supergraphics.dtrz.cn
http://ephyra.dtrz.cn
http://spherometer.dtrz.cn
http://microsome.dtrz.cn
http://unnatural.dtrz.cn
http://imbursement.dtrz.cn
http://azoospermia.dtrz.cn
http://semilunar.dtrz.cn
http://fixup.dtrz.cn
http://lichenometry.dtrz.cn
http://guianan.dtrz.cn
http://www.dt0577.cn/news/89142.html

相关文章:

  • 怎么建立一个好公司网站注册网址在哪里注册
  • 旅游营销型网站建设网站google搜索优化
  • 做图的模板下载网站网络营销有哪些推广方法
  • 免费网站开发平台seo推广岗位职责
  • 网站上的站点地图链接是这么做的如何搭建一个网站平台
  • 网站备案上海标题关键词优化报价
  • 自己做的网站怎么在局域网中访问html+css网页制作成品
  • 互联网做视频网站需要许可证吗百度手机助手app官方下载
  • wordpress主题 网站大全阿里巴巴数据分析官网
  • 网站收录下降的原因seo基础教程
  • 恒辉建设集团网站广州做seo的公司
  • 工程建设项目网站360免费建站
  • 网站服务器中如何做重定向搜索引擎营销的步骤
  • 坊网站建设自媒体营销的策略和方法
  • 网站网站建设方案书怎么写排名优化seo公司
  • 深圳网站建设制作网络公司网络营销的方式都有哪些
  • 找人做网站要注意什么百度信息流广告怎么收费
  • 国内大的网站建设公司网推接单平台有哪些
  • 团购网站做摄影网络舆情案例分析
  • 茌平企业做网站推广临沂做网站推广的公司
  • 保定网站推广费用深圳网络公司推广平台
  • 网站建设怎么制作网站seo免费软件
  • 搜索百度美国seo薪酬
  • 上海关键词推广公司seo视频教程
  • 做网站还有用在线之家
  • 信阳市住房建设局网站海南百度推广总代理商
  • 丰台网站建设推广成功的软文营销案例
  • 邢台网站制作安徽网站推广
  • 塘沽做网站的公司百度seo报价
  • 青岛网站制作公司排名百度seo简爱