spring的ioc是解耦,aop是干什么的

来源:百度知道 编辑:UC知道 时间:2024/06/04 05:22:18
ioc是解耦,aop是干什么的

AOP面向切面编程
将程序中的交叉业务逻辑(比如安全,日志,事务等),封装成一个切面,然后注入到目标对象(具体业务逻辑)中去。
比如:
很多方法可能会抛异常,你要记录这个异常到日志中去,可以写个拦截器类,在这个类中记录日志,在spring.xml中配置一个对这些要记录日志的方法的aop拦截器
在这个方法执行后调用这个拦截器,记录日志。这样就不用每次抛异常都要手动记录日志。
spring的事务管理用到的就是aop
这样也可以提高程序的内聚性。

结合图片看

AOP是代理模式的一种实现,你把代理模式理解了就不难了。

代理模式是一种针对业务逻辑复合处理的一种强大的设计模式。

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

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

public class ProxyObject implements Object {

    Object obj;

    

    public ProxyObject() {

        System.out.println("这是代理类");

        obj = new ObjectImpl();