分析代理类的作用与原理

本文主要探讨了代理类在Java中的作用,特别是在增加辅助功能但无法修改源代码时的解决方案。通过创建代理类,可以在不改变原有代码的基础上,实现如日志、安全等交叉业务的添加。介绍了静态代理和动态代理的概念,强调了动态代理在AOP(面向切面编程)中的重要性。讲解了JVM动态生成代理类的机制,以及在多线程环境下StringBuilder和StringBuffer的使用区别。最后,通过代码示例展示了如何使用InvocationHandler实现动态代理,并解释了代理对象调用方法时的内部工作原理。
摘要由CSDN通过智能技术生成

分析代理类的作用与原理


已经写好了一个类,里面有一个方法
class X{
  void sayHello(){
  System.out.println();
 }
}


要在这个类上面增加一些辅助功能,但是没有类的源代码,怎么办?

现在做一个X的代理
XProxy
{
 void sayHello()
 {
  startTime;
  X.sayHello();
  send time;
 }
}
代理类的方法必须和目标方法一样。

原来客户端需要调用Target,现在不调用Target,调用Proxy, 代理调用Target,Proxy和目标实现相同的接口,在客户端编程时,不调用目标,,也不调用代理,而是直接调用接口。
在代理里面一定要调用目标的对应方法,但是在调用这个方法的时候在前面或者后面需要增加一下动能。

采用工程模式和配置文件进行管理。
交叉业务,不同的模块有相同的事物,这样的业务叫做交叉业务。例如,安全,日志等功能贯穿到很多的模块中。

methodA(){ methodA(){ methodA(){

-------------------------------------------------------切面
    ...              ...          .....
--------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值