Spring AOP的基础知识

来源:互联网 发布:overwolf是什么软件 编辑:程序博客网 时间:2024/05/17 07:44

面向切面编程:Aspect-Oriented Programming,又称为AOP

AOP常用的一些有:AspectJ6、JBossAOP、SpringAop,他们都是著名的AOP技术框架和实现。

OOP(Object-Oriented Programming,又称面向对象编程)。OOP更多的关注系统的垂直切面关注的问题,而对系统的横切面关注很少,或者说很难关注。

比如:日志、安全性、事务管理等

AOP语序开发者动态修改OOP定义的静态模型,不用修改原始的面向对象模型,设置可以不用修改代码本身,即可以解决横切面问题。

Spring2.X的AOP是基于动态代理实现的。通过将Aspect6中易用、功能强大的pointcut表达语言引入其中,Spring的AOP使用、配置更为简单,且功能更加强大。

Spring AOP术语:

连接点(join point)。它指应用(目标对象)执行的某个点。比如执行到某个方法、访问到某个变量、某异常的抛出等。Spring AOP仅支持方法级的连接点。

也就是说,只有在方法执行时才能加AOP。

切入点(pointcut)。它能够声明、集结连接点。开发者借助pointcut表达式语言能够完成pointcut的指定工作。决定目标的哪些方法需要通知,通常就是一个表达式。

装备(advice)。切面在特定连接点所采取的动作,这些特定的连接点是由pointcut选定的。目前主要有5种装备:Before、AfterReturning、AfterThrowing、After、Around。

引入(introduction),也称为inter-type声明(AspectJ6)。引入能够往Java类、接口或切面新增接口、方法、成员变量。不改变一个现有类代码的情况下,为该类添加属性和方法

目标对象(target object)。指由若干切面装备的对象。常常将目标对象称为被装备对象(adviced object)。被通知的对象。(需要加入额外代码的对象)

织入(weaving)。将切面、目标对象连接在一起的过程称为织入,也就是将切面应用到目标对象中。Sring AOP 支持运行期织入。把切面加入程序代码的过程。

切面(aspect)。同OOP的对象概念一样,切面在AOP中占据了重要的位置,它将pointcut、装备、引入、目标对象等信息集结在一起,从而定义出相应的织入规则,这样一个整体称为切面。比如:AspectJ6和Spring AOP支持@AspectJ风格的切面对应。而Spring AOP 还支持基于<aop:config/>元素的POJO切面定义,和其他类型的切面定义。通知和切入点的组合。

原创粉丝点击