切面编程

切面编程提供了一种替代继承和委托的解决方案,用于模块化横切关注点,如安全和事务管理。通过定义通知(Advice)、切点(Pointcut)和连接点(Join point),可以在不修改受影响类的情况下,声明性地应用通用功能。Spring支持5种类型的通知,并允许通过切点表达式精确匹配应用切面的位置。织入(Weaving)是将切面应用到目标对象的过程,Spring支持编译期、类加载期和运行期的织入。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值