一般面向对象的编程,好比纵向的.
如果要在很多不同功能的方法中,统一添加一些什么方法,这样就需要横向的思考方式.
AOP概念
1.切面(Aspect):[将横切关注点的东西都放在一个类中.比如safeHandler.java]
一个关注点的模块化,这个关注点可能会横切多个对象。事务管理是J2EE应用中一个关于横切关注点的很好的例子。在Spring AOP中,切
面可以使用基于模式)或者基于@Aspect注解的方式来实现。
2.连接点(Joinpoint):
在程序执行过程中某个特定的点,比如某方法调用的时候或者处理异常的时候。在Spring AOP中,一个连接点总是表示一个方法的执行。
3.通知(Advice):[对横切关注点的实现,如安全性检查的方法]
在切面的某个特定的连接点上执行的动作。其中包括了“around”、“before”和“after”等不同类型的通知(通知的类型将在后面部分进行讨论)。许多AOP框架(包括
Spring)都是以拦截器做通知模型,并维护一个以连接点为中心的拦截器链。
4.切入点(Pointcut):[ 把通知放到连接点中.比如安全性检查放入add开头的方法(连接点)中,这个add开头的方法就是切入点.]
匹配连接点的断言。通知和一个切入点表达式关联,并在满足这个切入点的连接点上运行(例如,当执行某个特定名称的方法时)。切入点表达式如何和连接点匹配
是 AOP的核心:Spring缺省使用AspectJ切入点语法。