当前位置: 首页 > 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.dnsts.com.cn/news/110925.html

相关文章:

  • 南宁网站建设服务台商网站建设公司黄页
  • 招远网站建设公司地址关于网站建设的电话销售话术
  • 数据库网站开发教程友情链接检索数据分析
  • 网站流量报表佛山房地产新闻
  • 电商网站开发系统架构电商运营培训学费多少
  • 受雇去建设网站类网站东莞网站建设方案维护
  • 梧州单身相亲网站网站建设免费建站源代码
  • 做网站通过什么挣钱静态企业网站模板下载
  • 中小企业网站建设框架建什么类型的网站访问量比较大
  • 网站做标题有用吗wordpress小型论坛插件
  • 网站建设项目前分析重庆建设工程监督管理局网站
  • 饰品网站模板装潢设计可以考二建吗
  • 成都企业网站制作重庆网站制作有哪些
  • 中国互联网站建设中心wordpress启动插件出错
  • 做wd网站实训报告总结合川网站建设
  • 以橙色为主的网站网络管理软件app
  • 做银行应该关注的网站电子商务网站建设与管理的总结
  • 网页传奇网站什么是网站
  • 宁波门户网站建设wordpress怎么把分类栏目静态
  • 官方网站下载qq音速网站建设确认报告
  • 网站开发微信公众号自定义菜单做民宿怎么登录网站
  • 互联网金融网站开发江苏住建厅电子证书查询
  • 云南网站建设招商嵌入式软件开发是青春饭吗
  • 移动网站与pc网站互联网行业都有哪些公司
  • 常规做网站要在工信部认证吗新闻投稿平台
  • 外贸型网站推广与监测促销策划方案
  • 点菜网站模板长沙seo关键词排名优化
  • 杭州建站平台怎么制作游戏地图
  • 品牌网站建设j小蝌蚪j晓风彩票门户网站建设
  • 旅游网站开发设计文档中小企业网站多大空间