2 qq 23039605 qq_23039605 于 2016.03.28 23:06 提问

spring aop 到底是什么东东, 至今不是很明白。
aop

spring aop 通俗讲,怎么理解,越简单越通俗越好。因为没用过,至今还是有点小畏惧。哈哈

4个回答

caozhy
caozhy   Ds   Rxr 2016.03.28 23:25
已采纳

通俗地说,一个程序,需要变化和扩展吧。除了直接在源代码上修改,我们还有一个办法就是把软件变成很多小块积木一样,然后通过替换其中的一块,来更改代码,每个积木就是一个aspect,而我们编写程序就是约定好每个程序需要哪些aspects,所以是aspects oriented。
spring提供了一些代码,来组装这些积木,而作为开发者,你直接编写每个积木块就可以了。

qq_23039605
qq_23039605 回复caozhy: 静僻,受教了
一年多之前 回复
wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.03.29 08:04

AOP ,aspect oriented programm,就是面向切面编程。业务纵向是各不相同的,但是横向可能有共同的部分,例如一个方法调用之前可能都需要参数校验,在一个方法执行之前都需要打印一些参数信息等,这类相同功能在大量不同的类中可能都需要重复编写。那么我们可以把这些横向公共的部分抽取出来,利用反射回掉,自动调用这些操作,而不用再代码中显式编写,可以省去大量的重复工作。
切面,就是横向公共部分,一刀横向切下去有相同操作,而纵向看都是各自不同的功能。

qq_16696495
qq_16696495   2016.04.07 16:39

打个比方,每天吃饭,是一件事情,现在我们每天吃饭前都要洗手,那么我们可以做洗手这件事,这就是一个切面,在每天吃饭前执行。
日后我们吃饭,不论是去餐馆,还是大排档,都在吃饭前执行洗手这个动作。
切面应是一次开发终身受用的,用于处理一类场景,并且在日后的开发中不再需要关心。

mlw519
mlw519   2016.03.29 09:33

这玩意不要去扣字面意思。
只要明白它采用了字节码的技术来进行扩展。
假设有方法funcA()
对这方法调用时,可以在调用前、调用后或调用异常时有额外的处理,而这个处理通常是调用一个方法。
spring的声明式事物处理就是如此。
你调用一个service层的方法,在调用前它开启事务,调用结束后提交事务,调用失败则事务回滚。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!