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

建筑门户网站长沙网络推广平台

建筑门户网站,长沙网络推广平台,网站设计公司圣辉友联,电脑游戏网页一、JDK Jdk动态代理,拿到目标类所继承的接口,生成代理类,并且代理类也会实现和目标类一样的接口。 二、Cglib Cglib代理功能更强,无论目标类是否实现接口都可以代理,他是基于继承的方式类代理目标类,如果…

一、JDK

Jdk动态代理,拿到目标类所继承的接口,生成代理类,并且代理类也会实现和目标类一样的接口。

二、Cglib

Cglib代理功能更强,无论目标类是否实现接口都可以代理,他是基于继承的方式类代理目标类,如果目标类也实现了接口,代理类也会实现一次

public Object getProxy(@Nullable ClassLoader classLoader) {Class<?> rootClass = this.advised.getTargetClass();//目标类Class<?> proxySuperClass = rootClass;if (rootClass.getName().contains("$$")) { //如果目标类也是一个代理类,那么就拿到这个代理类的父类,因为这个代理类的父类,才是我们真正要代理的目标类。然后继承他proxySuperClass = rootClass.getSuperclass();Class<?>[] additionalInterfaces = rootClass.getInterfaces();//如果目标类是一个代理类,那么这个代理实现的接口,也就是新的代理类要实现的接口。this.advised.addInterface(additionalInterfaces); 把接口存起来下面要用}Enhancer enhancer = this.createEnhancer();enhancer.setSuperclass(proxySuperClass);  //设置代理的父类,可能是目标类的类型,可能是目标类的父类。enhancer.setInterfaces(AopProxyUtils.completeProxiedInterfaces(this.advised));  //设置新的代理类要实现的接口。//必实现的接口SpringProxy,如果是切面还会实现Advisedenhancer.setNamingPolicy(SpringNamingPolicy.INSTANCE);enhancer.setStrategy(new ClassLoaderAwareGeneratorStrategy(classLoader));Callback[] callbacks = this.getCallbacks(rootClass);Class<?>[] types = new Class[callbacks.length];。。。。。
}

三、如何选择

那么在Spring创建代理对象的时候是选择Cglib还是Jdk有一段代码

//判断是否是接口或者是否是代理类
if (targetClass.isInterface() || Proxy.isProxyClass(targetClass)) {new JdkDynamicAopProxy(config)
} else {new ObjenesisCglibAopProxy(config)
}public static boolean isProxyClass(Class<?> cl) {return Proxy.class.isAssignableFrom(cl) && proxyClassCache.containsValue(cl);
}

Proxy.class.isAssignableFrom(cl)就是判断cl所表示的类是不是SpringProxy或者SpringProxy的子类。因为所有的代理类都会继承SpringProxy,所以这个条件必须满足。满足这个条件也不能保证就是代理类,因为可能存在人为地编写一个类继承SpringProxy。proxyClassCache.containsValue(cl)这个方法是检查缓存中是否存在这个Class实例cl。只要生成过代理类都会被缓存,所以这个方法才是检测一个类是否是代理类的唯一标准。

http://www.mmbaike.com/news/45882.html

相关文章:

  • 汽车网站建设方案优化排名seo
  • 椒江建设局网站网络营销师培训
  • 网站开发 ie兼容平台推广网站
  • 网站登陆系统怎么做怎么建立网站平台
  • 做阿里云网站做电商需要学哪些基础
  • 西安做搭建网站宁波 seo整体优化
  • 海外营销网站建设市场营销十大经典案例
  • 培训学做网站要多久百度搜索关键词查询
  • 代加工厂接单平台seo专员招聘
  • 好用的cms网站24小时免费看的视频哔哩哔哩
  • 免费做外贸的网站百度有钱花人工客服
  • 微网站首页seo主要做什么
  • 做网站赚几百万廊坊seo建站
  • 做汽车配件的网站灰色推广
  • 网站论坛怎么做如何自己开发一个平台
  • 网站关键字设置软件开发网站
  • 全栈工程师是做网站吗榜单优化
  • 登录网易企业邮箱seo网络推广经理
  • 微信怎么开通微商城seo顾问是什么职业
  • 泉州做网站优化哪家好搜索引擎优化关键词
  • wordpress免费批量采集软件优化大师软件大全
  • 适合毕设做的简单网站百度推广优化是什么?
  • 真正免费的网站建站平台排名佛山网站建设正规公司
  • 男女做羞羞羞的网站建网站seo
  • ps个人网站制作流程微信crm系统
  • 新网站建设方案ppt网站推广seo
  • 用自己的电脑做服务器弄网站搜索引擎优化名词解释
  • 泰安房产价格最新seo英文怎么读
  • 虚拟机做网站服务云服务器
  • 企业网站网页打开慢广东深圳龙华区