如何理解动态代理??
答案:2 悬赏:70 手机版
解决时间 2021-02-05 13:16
- 提问者网友:轻浮
- 2021-02-04 14:41
静态代理很容易,但是动态代理却老是理解不了,找了好多资料看都没用,心里好着急啊。诚心向前辈们请教,万望能说得通俗一些,先行谢过了。
最佳答案
- 五星知识达人网友:山君与见山
- 2021-02-04 16:16
Java 动态代理机制分析及扩展
全部回答
- 1楼网友:深街酒徒
- 2021-02-04 17:29
人家是动态编程,需要在原来的方法的功能基础上再添加一些功能,而不用改变这个方法的签名,原来调用这个方法的类依然能正常工作。
比如,现在要把一段文本发送给另一个人,普通方法是voidsend(filea),现在我们弄出个特性,就像springaop那样,在send之前给这个a压缩一下。原来的程序没有压缩功能,现在我们需要添加的话而不改变原来所有的代码的话就得用类似aop这样的代码来处理。
一般一个无法再继承的类和方法,要用代理,而能够继承的类和方法可以在内在中直接生成一个新的java类继承它然后覆盖掉那个send方法,像hibernate/spring/jboss都把这些自动完成了。
而像aspectj这种aop刚不同,它直接把人家的class代码修改了,它就不需要使用代理。
这些在新的jdk6中都可以通过instrument来做到,不过也是个通用的方法,还得通过规则来定制什么情况下处理,什么时候不处理。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯