面向切面编程(AOP)简介 关于AOP的一些定义: Apring 对 AOP的4种支持: 总结:

    在软件中,有些行为对于大多数应用都是通用的。日志,安全和事务管理几乎是所有软件都需要的。他们是否可以主动的参与呢,如果让应用程序只关注与自己所针对的业务领域问题,而其他的问题有其他应用对象来处理。是否属于一种封装呢。最近学习了spring的一些基本原理,在软件开发中,分布于应用中多处的功能被称为横切关注点(cross-cutting concerns)。通常,这些横切关注点从概念上是与应用的业务逻辑相分离的。将这些横切关注点与业务逻辑相分离是面向切面编程所解决的。


面向切面编程(AOP)简介
关于AOP的一些定义:
Apring 对 AOP的4种支持:
总结:

通知(Advice)



切面的工作被称为通知,且有目标,有自己需要完成的工作。

spring有五种类型的通知:

1.before   在方法被调用之前
2.after    在方法被调用之后
3.after-returning    在方法成功执行之后
4.after-throwing    在方法抛出异常之后
5.around    通知包裹了被通知的方法,在被通知方法调用之前和调用之后执行自定义的行为


连接点(Joinpoint)


连接点是在应用执行过程中能够插入切面的一个点,切面代码可以利用这些点插入到应用的正常流程之中,并添加新

的行为。Advice在应用程序上执行的点或时机,Spring只支持方法的JoinPoint,这个点也可以使属性修改,如:

Aspecj可以支持


切点(Poincut)


     切点有助于缩小切面所通知连接点的范围。它定义了Advice应用到哪些JoinPoint上,对Spring来说是方法调用。


切面(Aspect)


     是通知和切点的结合,通知和切点共同定义了关于切面的全部内容——她是什么,在何时和何处完成其功能。

面向切面编程(AOP)简介
关于AOP的一些定义:
Apring 对 AOP的4种支持:
总结:

Apring 对 AOP的4种支持:



1.基于代理的经典AOP

2.@AspectJ注解驱动的切面

3.纯POJO切面

4.注入式AspectJ切面


     前3个都是spring基于代理的AOP变体,因此,spring对AOP的支持局限于方法拦截。如果AOP需求超过了简单方法拦截的范畴,那么就使用最后一个方法,利用Spring的依赖注入把Bean注入到AspectJ切面中。

 


总结:


      下面的博客将会用自己敲的小例子来讲讲对于AOP的理解,对于另一种AOP的实现AspectJ,是如何与SpringAOP相结合的,等着进一步的了解。