请谈一下spring aop的原理和作用,在线等^

请谈一下springaop的原理和作用;... 请谈一下spring aop的原理和作用; 展开
 我来答
zfcdoudou
2009-02-12 · TA获得超过114个赞
知道答主
回答量:31
采纳率:0%
帮助的人:32.9万
展开全部
AOP是代理模式的一种实现,你把代理模式理解了就不难了。
代理模式是一种针对业务逻辑复合处理的一种强大的设计模式。

生活中常常有这样的例子,比如你去拜访一位朋友,但是他却不在家,这时你会让他的家人通知他。但是这个通知的过程你并不清楚。如果你有礼貌,也许家人会夸奖你,如果你态度恶劣,说不定也会打你小报告。你所关注的只是通知朋友的事件,但此过程中间可能会发生其他的事情。

放在程序中来说,进行一段业务处理的时候,会遇到额外要增加的业务逻辑,这段逻辑是已经封装好的。而本身的业务逻辑也是封装好的,两个模块间并不发生任何关系。这个时候就要用到代理模式了,下面简单提供一段示例代码阐述代理模式的基本思想。

public class ProxyObject implements Object {

Object obj;

public ProxyObject() {
System.out.println("这是代理类");
obj = new ObjectImpl();
}

public void action() {
System.out.println("代理开始");
obj.action();
System.out.println("代理结束");
}
}

public interface Object {

void action();
}

public class ObjectImpl implements Object {

public void action() {
System.out.println("========");
System.out.println("========");
System.out.println("这是被代理的类");
System.out.println("========");
System.out.println("========");
}
}

public class Test {

public static void main() {
Object obj = new ProxyObject();
obj.action();
}
}

代理模式是一种间接调用的体现,上面示例代码中。如果直接调用Object实现类,也就是ObjectImpl中的方法,并不能调用新的业务逻辑,而如果实现一个代理类,在类中调用ObjectImpl,这样外部访问代理类时会间接调用ObjectImpl,并且此过程可以扩展而不用对源代码ObjectImpl进行修改。

spring 中的AOP就是基于这种原理。AOP中会发生多个逻辑复合处理的情况,使用代理类能准确执行目标类中定义的逻辑单元并且扩展其他的逻辑单元。
frank_prefect
2009-02-13 · TA获得超过103个赞
知道小有建树答主
回答量:112
采纳率:0%
帮助的人:117万
展开全部

接楼上,有个图比较清楚

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式