spring面向切面编程理解

面向切面编程(AOP)是实现关注点分离的技术,用于解决横切关注点如日志、事务和安全等在整个系统中分散的问题。AOP通过模块化系统服务并以声明方式应用到组件中,提高组件的内聚性和简洁性,减少系统复杂性。
摘要由CSDN通过智能技术生成

有点理论性但是看完这章之后真的觉得可以宏观理解AOP到底是啥

面向切面编程(AOP,aspect-oriented programming)
定义:促使软件系统实现关注点的分离一项技术。系统是由许多组件组成,每个组件各负责一块特定功能,还有可能承担日志,事务管理和安全等系统服务中去,这些系统服务称为横切关注点,因为它可以跨越系统的多个组件。
将这些关注点分散到多个组件中,会带来一些问题:

  • 实现系统关注点功能的代码将会重复出现在多个组件中。这意味着如果你要改变这些关注点的逻辑,必须修改各个模块中的相关实现。即使你把这些关注点抽象为一个独立的模块,其他模块只是调用它的方法,但方法的调用还是会重复出现在各个模块中。
  • 组件会因为那些与自身核心业务无关的代码而变得混乱。一个业务的方法应该只关注业务本身,而不应该关注它 是不是安全的或者是否需要支持事务。

左边的业务对象与系统级服务结合得过于紧密。每个对象不但要知道它需要记日志、进行安全控制和参与事务,还 要亲自执行这些服务。

在这里插入图片描述

AOP能使这些系统服务模块化,并且用声明的方式来把他们应用到需要的组件中,这样使组件具有更高的内聚性更加关注自身的业务,而不需要了解系统服务的所带来的复杂性,AOP保持了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值