我是靠谱客的博主 靓丽花瓣,最近开发中收集的这篇文章主要介绍切面编程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 
    
       每个模块的核心功能都是为特定业务领域提供服务, 但是这些模块都需要类似的辅助功能, 例如安全和事务管理。如果要重用通用功能的话, 最常见的面向对象技术是继承(inheritance) 或委托(delegation) 。 但是, 如果在整个应用中都使用相同的基类,继承往往会导致一个脆弱的对象体系; 而使用委托可能需要对委托对象进行复杂的调用。
切面提供了取代继承和委托的另一种可选方案, 而且在很多场景下更清晰简洁。 在使用面向切面编程时, 我们仍然在一个地方定义通用功能,但是可以通过声明的方式定义这个功能要以何种方式在何处应用, 而无需修改受影响的类。 横切关注点可以被模块化为特殊的类, 这些类被称为切面(aspect) 。 这样做有两个好处: 首先, 现在每个关注点都集中于一个地方, 而不是分散到多处代码中; 其次, 服务模块更简洁, 因为它们只包含主要关注点(或核心功能) 的代码, 而次要关注点的代码被转移到切面中了。 
       AOP术语 
    与大多数技术一样, AOP已经形成了自己的术语。 描述切面的常用术语有通知(advice) 、 切点(pointcut) 和连接点(join point) 
    
通知( Advice) ,在AOP术语中, 切面的工作被称为通知。 
     Spring切面可以应用5种类型的通知:
        前置通知(Before) : 在目标方法被调用之前调用通知功能;
        后置通知(After) : 在目标方法完成之后调用通知, 此时不会关心方法的输出是什么;
        返回通知(After-returning) : 在目标方法成功执行之后调用通知;
        异常通知(After-throwing) : 在目标方法抛出异常后调用通知;
        环绕通知(Around) : 通知包裹了被通知的方法, 在被通知的方法调用之前

最后

以上就是靓丽花瓣为你收集整理的切面编程的全部内容,希望文章能够帮你解决切面编程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部