码迷,mamicode.com
首页 > 编程语言 > 详细

我所理解的Spring AOP的基本概念

时间:2014-06-26 11:01:16      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:spring aop   面向切面编程   

Spring AOP中的概念晦涩难懂,读官方文档更是像读天书,看了很多例子后,写一些自己理解的一些spring的概念。要理解面向切面编程,要首先理解代理模式和动态代理模式。

假设一个OA系统中的一个功能是查看考勤信息,那么我们假设有要实现这个功能,要经历的步骤是:

1.启动日志,进行记录。

2.启动安全性的框架进行安全检验

3.验证权限          

4.如果有权限,则查看考勤记录,如果无权限,则输出没有权限。

我们的目标方法是查看考勤记录,而前面执行了那么多与目标方法无关的方法。

那些与业务逻辑无关的方法叫切面。切面中的方法为通知。当验证权限通过后,就执行目标方法,则切入点就是验证权限的那个方法。形成代理方法的过程叫做织入,在客户端调用的方法就是连接点。

切面

    日志、安全性的框架、权限的检查等,总之和业务逻辑没有关系的都可以看做切面

 通知

    切面中的方法

切入点

    只有符合切入点,才能把通知和目标方法结合在一起(就像例子中,只有符合了权限,才能查看考勤记录)

连接点

   客户端调用的方法

 代理对象的方法=通知+目标方法(代理方法增强了对象的目标方法)

 aop(面向切面编程):做到了代码块的重用

面向切面编程为什么做到了代码块的重用?那些切面在不同的地方可以调出来用,切面就是不同功能的代码块,可以通过代理模式增强某些目标方法。

再举个例子,对数据库的增删改查,增删改要开启事务管理,查不需要开启事务管理,对于开启事务,和提交事务,都属于非目标方法,可以看做切面,而增删改,是目标方法。开启事务和提交事务中的方法,是通知。通过动态代理模式,可以把通知和目标方法结合在一起。

我所理解的Spring AOP的基本概念,布布扣,bubuko.com

我所理解的Spring AOP的基本概念

标签:spring aop   面向切面编程   

原文地址:http://blog.csdn.net/u012814506/article/details/34448365

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!