Spring 中的Aop 的理解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring 中的Aop 的理解相关的知识,希望对你有一定的参考价值。
也是闲来无事,所有从头再把Spring 实战通读一下。
1.介绍面向切面编程的原理。
2.通过POJO创建切面。
3.使用注解@AspectJ。
4为切面注入依赖。
下面主要围绕上面这四点开始介绍
首先,切面能帮助我们做什么? 专业一点就是可以帮助我们模块化横切关注点。【横切关注点】描述为影响应用多处的功能。(安全,事务,其他,等)
划分多个模块,每个模块的核心都需要为特定的业务领域提供服务,但是这些模块也都需要类似的辅助功能。
想要重用这些功能的话,常见的就是面向对象的继承(inheritance)和委托(delegation)。
切面提供了取代继承和委托的另一种可选方案。
在使用面向切面编程时,我们还是在一个地方定义通用的功能,但是可以通过声明的方式定义这个功能要以何种方式在何处应用。
而无需修改受影响的类。横切关注点可以模块化为一个特殊的类,这些类又被称为 切面(aspect)
[ 这样做的好处就是,现在的每个关注点都集中在了一个地方。而不是分散到多处代码中。降低了耦合,再者就是简洁,它们这些类只包含关注点的代码,二次要的关注点代码被转移到了切面中。]
Aop 相关术语
通知(Advice)定义了切面是什么以及什么时候使用。
前置通知(Before):在目标方法被调用之前调用通知功能
后置通知(After):在目标方法完成之后调用通知,此时不会关心方法的输出是什么;
返回通知(After-returning):在目标方法成功执行之后调用通知;
异常通知(After-throwing):在目标方法抛出异常后调用通知;
环绕通知(Around):通知包裹了被通知的方法,在被通知的方法调用之前和调用之后执行自定义的行为。
以上是关于Spring 中的Aop 的理解的主要内容,如果未能解决你的问题,请参考以下文章