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

微信公众号服务热线网站优化网

微信公众号服务热线,网站优化网,浙江省建设项目招投标网站,软件生成器手机版总体分为: 1.静态代理: 代理类和被代理类需要实现同一个接口.在代理类中初始化被代理类对象.在代理类的方法中调 用被代理类的方法.可以选择性的在该方法执行前后增加功能或者控制访问 2.动态代理: 在程序执行过程中,实用JDK的反射机制,创建代理对象,并动态的指定要…

总体分为:

1.静态代理:

        代理类和被代理类需要实现同一个接口.在代理类中初始化被代理类对象.在代理类的方法中调          用被代理类的方法.可以选择性的在该方法执行前后增加功能或者控制访问

2.动态代理:

        在程序执行过程中,实用JDK的反射机制,创建代理对象,并动态的指定要代理的对象,动态代理          不需要创建代理类

        动态代理是一种创建java对象的能力

java中,想要创建对象:

1.通过构造方法new对象

2.克隆

3.反射

4.反序列化

       2.1.JDK动态代理:  JDK代理是基于接口的代理,要求目标对象实现至少一个接口。JDK 动态         代理是 Java 标准库提供的一种代理机制,它基于接口生成代理对象。JDK 动态代理使用               java.lang.reflect.Proxy 类和 InvocationHandler 接口来创建代理对象,并要求目标对象            必须实现至少一个接口。这种代理机制适用于接口代理,通常用于 AOP 等场景。

       2.2.CGLIB动态代理: MethodInterceptor 是CGLIB代理机制中的一部分,通常与CGLIB代理           一起使用。CGLIB 动态代理是一个独立的字节码生成库,它通过生成目标对象的子类来创建           代理对象,不要求目标对象实现接口。CGLIB 动态代理可以代理普通的类,而不仅仅是实现           了接口的类。这种代理机制适用于类代理,通常用于 ORM 框架Spring 中的@Transactional           等场景。

        2.3.javassist动态代理:Javassist 是另一个字节码操作库,它可以用于生成动态代理类。                Javassist 动态代理与 CGLIB 相似,可以代理普通类,但它的使用方式和实现略有不同。

        2.4.Byte Buddy动态代理:Byte Buddy 是一个现代的字节码生成库,也可以用于创建动态代          理对象。Byte Buddy 提供了更直观和强大的 API,可以用于生成代理类。

使用代理模式的作用:

        1.功能增强:在原有功能前后额外增加功能

        2.访问控制:例如设置条件,条件允许才可以访问

1.静态代理:静态代理的实现中,代理类和被代理类必须实现同一个接口,而且代理类需要自己手工实现且你所要代理的目标类是确定的

        实现简单,容易理解

新建项目

设置下maven与encoding

新建moudle  

举例  

方法前后都加了日志,但对于HelloSpeaker类来说,打日志并非业务逻辑,会增加额外负担

程序中如果这种日志到处需要使用.程序员不得不到处写日志动作.

有没有办法,让程序员修改简单代码,就可以选择性的打日志

定义一个接口HelloSpeaker1好比原来的HelloSpeaker

现在写个静态代理类,这么去做

测试结果  和原来一摸一样

那么我需要打日志的话,就只需要修改一下new HelloProxy(new HelloSpeaker1);

不需要打日志我就new HelloSpeaker();

有时候要学会多变一点

比如在代理类HelloProxy中

定义成员变量时候直接new了

那最后就两种

new HelloProxy();

或者new HelloSpeaker();

代理类为被代理的类增强了功能且可以做访问控制

这就是静态代理

静态代理要求:代理类和被代理的类必须实现同一个接口.

                        缺点:目标类多了,代理类可能也要成倍增加,且接口中的功能增加会影响目标类和

下面看下动态代理

JDK动态代理:  需要目标类实现某个接口

CGLIB代理:CGLIB是第三方工具库,动态创建代理对象

CGLIB原理是继承,通过继承目标类(即被代理类),动态创建它的子类

在子类中重写父类(目标类的)同名方法,实现功能修改(那么目标类不能是final的,方法也不能是final的)

http://www.zhongyajixie.com/news/39607.html

相关文章:

  • 网站连接如何做二维码软文推广平台
  • 自己做网站销售教育培训平台
  • 做wish如何利用数据网站深圳推广公司推荐
  • 做网站要懂哪些网络软件开发
  • 保险网站有哪些惠州seo外包
  • 市民专线是什么app关键词优化
  • 旅游网站推广方案seo云优化平台
  • b2b电子商务网站的收益模式主要有品牌软文营销案例
  • 廊坊市建设局网站seo服务顾问
  • 班级网页设计模板html优化设计四年级上册数学答案
  • 那个网站做字体营销技巧五步推销法
  • 马家堡做网站的公司高端网站建设哪个好
  • 电子网站建设ppt模板公众号软文素材
  • 武汉网上商城网站建设网络营销是做什么
  • 《营销型网站建设实战》chrome下载
  • 衢州装饰装修网站如何用百度平台营销
  • 行业网站建设多少钱seo公司 杭州
  • 国外做SEO网站关键词排名优化公司成都
  • 蒙阴哪有做淘宝网站的好看的网站设计
  • 天津多媒体设计公司搜索引擎优化推广
  • 网站聚合优化河南郑州网站推广优化外包
  • ppt做的模板下载网站有哪些内容微信营销的优势
  • wordpress怎么做两个语言网站查域名
  • 有好的学网站建设的书吗百度关键词怎么刷上去
  • 如何制作网站详细教程培训心得体会2000字
  • 做视频点播网站的要求汕头seo外包机构
  • 返利网站开发文档专业seo站长工具全面查询网站
  • 网站推广外包公司郑州企业网络推广外包
  • 企业官方网站认证网络电商推广方案
  • 网络广告案例以及分析大连seo网站推广