5 Spring AOP介绍

Spring使用的两个核心,注入和AOP,前面常见和基本的注入情况已经介绍完了。注入相对比较好理解,就没有专门开辟一讲来说注入的概念。现在我们专门谈谈AOP AOP的意思是面向切面的编程。
试想这样一种场景。有一个功能,逻辑上不属于任何一个功能模块。但经常会在不同的模块中被用到。而这个功能在逻辑上并不属于一个上层功能,也就是说用继承来复用这个功能是不合逻辑的。(比如记录日志和权限审查,为了方便我们简称为日志功能吧) 这些功能与业务逻辑不想管,如果使用代码调用的方式,复用性、可读性不好。 AOP是把逻辑业务和日志功能分割开,然后用编织的方法再关联起来,在代码中没有显式的调用,这样功能逻辑的可读性和复用性更好。
下面看个图
[img]http://dl2.iteye.com/upload/attachment/0100/6653/6767a997-221b-3248-b7d2-c0b2b43feb2f.png[/img]
图中白色的横向箭头表明业务逻辑运行的方向,而黄色截断部分表示aspect。
黄色和白色的交界处成为连接点(joint point)表示需要插入日志功能的位置。
spring就这样把日志功能插入到业务逻辑之中来运行,但是在代码上,没有显示的调用。

同样aop也有两种方式,一种是annotation,一种是xml。与bean注入不同,aop更多的应用是xml,为何?
因为xml更少的改动代码。特别是业务功能已经完成的情况下,改动代码可能带来不良后果,使用xml会好一些。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值