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

Spring Framework--AOP(1)--

时间:2014-04-30 16:00:00      阅读:429      评论:0      收藏:0      [点我收藏+]

标签:java   c   tar   t   sp   get   int   cti   type   管理   应用   

一、简介

AOP(Aspect-Oriented Programming,即面向切面程序设计),提供了另外一种有关程序结构的思维方式,是OOP(面向对象程序设计)的补充。

OOP的模块化单元是类,AOP的模块化单元是切面。切面可以模块化横切多个类或者对象的关注点,比如事务管理,这些关注点在AOP的词汇里,我们称之为横切关注点(crosscutting concerns).

Spring的AOP框架是Spring最重要的组件之一,虽然Spring的Ioc不依赖于AOP(这意味着你如果不需要AOP你可以不用它),但是AOP是Ioc的补充,它们一起可以提供强大的中间件解决方案。

Spring框架使用AOP可以:

(1)提供声明式的企业服务,作为EJB声明式企业服务的替代方案。其中最重要的一个服务就是声明式事务管理。

(2)作为OOP的重要补充,允许用户实现自定义的切面。

1、AOP相关概念

首先来认识AOP中的一些核心概念和术语,这些术语并不是特定于Spring框架的。AOP的这些术语不是很直观,比较不好理解。

(1)Aspect(切面):对横切多个类的关注点的模块化,事务管理是个很好的例子。在Spring AOP中,切面是通过常规的类(基于schema的方式)或者带有@Aspect注解的常规类(@AspectJ方式)来实现的。

(2)Join point(连接点):程序执行中的一个点,比如一个方法的执行或者一个异常的处理。在Spring AOP中,一个Join point总是代表一个方法的执行。

(3)Advice(通知或者建议):一个切面在一个连接点执行的动作。许多AOP框架,包括Spring的,都是把建议模拟成拦截器,在Join point周围维护了一个拦截器链。

(4)Pointcut(切入点):A Predicate that matches join points,匹配连接点的谓词。Advice关联一个pointcut表达式,并且在匹配这个表达式的连接点执行。Spring默认使用AspectJ的切入点表达式。

(5)Introduction(引进):在一个类型上声明额外的方法或者属性,Spring AOP允许你在任何目标对象上引进新的接口(以及一个相应的实现)。比如你可以使用introduction来让一个bean实现一个IsModified接口来简化缓存。(introduction在AspectJ社区被称为一个类型间声明inter-type declaration)。

(6)Target object(也叫advised object):目标对象,也就被建议对象,是被切面添加advice的对象。因为Spring AOP是使用运行时代理实现的,所以这个对象总是被代理的对象。

(7)AOP Proxy(AOP代理):AOP框架生成的一个对象,用来实现切面的约定(建议方法的执行等等)。在Spring中,一个AOP Proxy总是一个JDK动态代理或者一个CGLIB代理。

(8)Weaving(织入):把切面与其他应用类型或者对象链接起来生成一个新的advised object。织入可以在编译时(比如使用AspectJ编译器),加载时,运行时完成。Spring AOP和其他纯java的AOP框架一样,是在运行时完成织入的。

Types of advice:before,after returning,after throwing,after,around。

Spring Framework--AOP(1)--,码迷,mamicode.com

Spring Framework--AOP(1)--

标签:java   c   tar   t   sp   get   int   cti   type   管理   应用   

原文地址:http://www.cnblogs.com/winson/p/3699529.html

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