解释AOP模块
AOP是Aspect Oriented Programming缩写,面向切面编程,他使程序员可以更好的将本不应该彼此粘合在一起的功能分开,AOP是一种思想主要作用就是对代码段进行增强处理,目的降低代码的耦合性,从而达到易维护和重用的目的。其设计思想来源于代理模式,在此基础上进行了封装扩展,最终形成一些功能强大的aop框架,如AspectJ简单的说:就是在不改变原程序的基础上为代码段增加新功能,如日志输出,启动数据库事务等,下图可呈现出运行机制:
在代理模式中可以为该对象设置一个代理对象,代理对象为fun()方法提供一个拥有相同方法签名的代理方法,当通过代理对象的fun()方法调用原对象的fun()方法时,就可以在代理对象的fun() 中添加新功能,这也就是所谓的增强处理,它可以插入到原对象fun()方法前后,这种模式下,给编程人员感觉是:在不修改原有代码情况下,直接在业务流程中切入新代码,实现新功能,这就是所谓的面向切面编程