java中的代理模式

代理模式

代理模式的关键点是:代理对象与目标对象.代理对象是对目标对象的扩展。

通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.

代理类负责其他琐碎的事情(公共性内容)。

一、静态代理

核心:代理类和目标类实现共同的接口;代理类持有目标类的引用,通过构造函数进行传递。

作用:代码或者说功能增强。

通过spring改造静态代理模式。

静态代码模式的缺点:

1)如果系统中有100Dao操作,就会创建100个代理对象。

2)如果一个Dao类中很多方法需要事务,则代理方法中重复代码还是很多。

3)静态代理模式的重用性不强。

二、Jdk动态代理:使用jdk的api实现

核心:接口,目标类,拦截器

代理对象是动态产生的,没有代理类,

拦截器是用来拦截目标方法的执行的。InvocationHandler接口,Proxy类, newProxyInstance()

拦截器中的invoke方法到底什么作用:调用执行相应的方法。

动态代理对象方法体中的内容就是invoke方法体中的内容。

分工比较细,降低耦合,只需要维护一个模块的的代码。各自不知道各自的存在。  

注意事项:

1)拦截器invoke方法体中的内容就是代理对象方法体中的内容

2)当客户端执行代理对象方法时,进入到拦截器的invoke方法体

3)拦截器中invoke方法的参数实在调用的时候赋值的。

三、cglib动态代理:

使用cgjar包实现,需要导入jar包。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值