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

做公众号用什么网站吗创立制作网站公司

做公众号用什么网站吗,创立制作网站公司,深圳网站建设的特殊性,东莞市seo网络推广平台我的JDK动态代理流程 我梳理的动态代理流程大约是#xff1a; 如果每一个框架都有自己的BPP#xff0c;且自己的BPP中都有自己的wrapIfNecessory#xff0c;那样可能就是一个BPP一个代理类。但通常应该都是各自的框架以提供 Advisior#xff08;切面#xff09;的方式 如果每一个框架都有自己的BPP且自己的BPP中都有自己的wrapIfNecessory那样可能就是一个BPP一个代理类。但通常应该都是各自的框架以提供 Advisior切面的方式让AOP的BPP去处理他们的Advisior。 BeanPostProcessor 处理bean的时候会找到这个bean匹配上的的advisior切面的集合。 ProxyFactory 拿到adivisor的集合和目标类之后 设置当前代理的 advicisor、设置当前代理的目标对象 targetClass设置当前代理的接口类使用Jdk或者cglib动态代理创建代理类createAopProxy().getProxy();​​ 生成代理类 JDK动态代理 JDK动态代理要求被代理类必须实现方法否则报错。原因当然和JDK动态代理的原理有关系了。 public Object getProxy(Nullable ClassLoader classLoader) {return Proxy.newProxyInstance(classLoader, this.proxiedInterfaces, this); }生成代理类 public Class? apply(ClassLoader loader, Class?[] interfaces) {。。。byte[] proxyClassFile ProxyGenerator.generateProxyClass(proxyName, interfaces, accessFlags);。。。 }生成代理类 将所有方法包装成ProxyMethod对象 将Object类中的hashCode、equals、toString方法包装成ProxyMethod对象获取代理类接口列表遍历每个接口的每个方法并包装成ProxyMethod对象 为代理类组装各种字段信息和方法信息 添加构造器方法该构造器参数为InvocationHandler类型添加静态字段及代理方法添加静态字段的初始化方法 写入class文件 验证常量池中存在代理类的全限定名验证常量池中存在代理类父类的全限定名即Proxy类验证常量池中存在代理类接口的全限定名写入class文件前将常量池设为只读当前常量池中的变量不允许修改每个class文件的前四个字节为魔数用来确定这个文件是否是一个能被虚拟机接受的class文件后面再跟两个字节的次版本号和两个字节的主版本号。。。转成二进制文件输出 在调用代理对象方法时会在方法内执行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});} }JdkDynamicAopProxy的invoke方法 获取​MethodInterceptor​集合 chainListObject chain this.advised.getInterceptorsAndDynamicInterceptionAdvice(method, targetClass);​​ 对于拦截器链为空的情况会直接执行目标方法 对于拦截器链不为空的情况会将代理对象、目标方法、拦截器链等信息封装为一个 ReflectiveMethodInvocation 对象然后通过它的proceed​​方法完成拦截器中的增强逻辑和目标方法的执行。 ​MethodInvocation invocation new ReflectiveMethodInvocation(proxy, target, method, args, targetClass, chain);​​调用方法retVal invocation.proceed();​​
http://www.hkea.cn/news/14586329/

相关文章:

  • 网站推广怎么做有效果semen
  • 可以看所有网站的浏览器网站建设厘金手指下拉15
  • 一个简单的个人网站东莞p2p网站开发费用
  • 招聘网站的销售怎么做公司介绍模板怎么写
  • 商城网站的建设费用wordpress 域名配置
  • 网站建设三大部分池州网站建设价格
  • 网站建设用模板如何发布网站到域名
  • 购物网站建设源码自己注册一个网站要多少钱
  • 做网站的感觉响应式网站建设智能优化
  • 网站手机版怎么做的wordpress 技术
  • 怎么做自己网站的后台PHP网站开发简单实例
  • 大悟网站建设潮州市建设局网站
  • 西安网站开发公司想学管理方面的培训班
  • 自己建设网站平台步骤iview做的网站
  • 做擦边球的网站深圳市建设局科技处网站
  • 网站建设价格套餐北京网络销售
  • 可以做围棋习题的网站东莞人才网最新招聘信息
  • 做网站 创业 流程绍兴网站建设网站
  • 南京做网站优化价格公司小程序建设哪家好
  • 品牌营销服务搜索引擎优化seo价位
  • 网站建设合同黑客攻击android开发编辑wordpress
  • 东营微信开发网站建设自媒体平台源码
  • 网站下载系统如何做系统如何联系外贸公司接订单
  • 电商网站制作项目描述html电子商务网站模板下载
  • 天津招聘网人才招聘官网二十条优化措施全文
  • 中性衣服印花图案设计网站百度首页排名代发
  • app取代网站wordpress简单用户中心
  • 网站新建设请示附近哪里有建设
  • WordPress主题DIY插件网站的结构与布局优化
  • 大同格泰网站建设深圳专业网站设计公司价格