轻松学JavaWeb开发之面向切面编程x

轻松学JavaWeb开发之面向切面编程x

ID:38726709

大小:843.42 KB

页数:28页

时间:2019-06-18

轻松学JavaWeb开发之面向切面编程x_第1页
轻松学JavaWeb开发之面向切面编程x_第2页
轻松学JavaWeb开发之面向切面编程x_第3页
轻松学JavaWeb开发之面向切面编程x_第4页
轻松学JavaWeb开发之面向切面编程x_第5页
资源描述:

《轻松学JavaWeb开发之面向切面编程x》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第18章面向切面编程本章继续学习Spring的第二大功能,即面向切面编程(AspectOrientedProgramming,AOP)。在前面学习Java时,我们知道Java是一门面向对象的语言。面向切面编程在一定程度上弥补了面向对象编程的不足。面向对象编程是对父类、子类这种纵向关系编程,而面向切面编程是在方法的前后进行横向关系编程。这一章我们就来对面向切面编程进行详细讲解。18.1面向切面编程简介对于初学者而言,面向切面编程是一个全新的编程思想。这里提出了切面的概念,通过切面对关注点进行模块化,其中

2、最常见的切入点就是方法。使用面向对象编程,在指定方法的前面执行另一个方法是不难实现的,但是如果要在同一个包下所有类的方法前面都执行统一方法就是一件比较复杂的工作了。在这种情况下,如果使用面向切面编程就很容易实现。18.1.1面向切面编程的概念在面向切面编程中,经常会看到很多抽象的概念,就像我们刚开始学习Java时,也会遇到类、对象、多态等这些难懂的对象一样。我们先来对AOP中经常遇到的一些概念进行讲解。首先是切面,切面就像是一把刀,可以讲一个事物一分为二。Spring中的切面可以将一个程序分为两部分,

3、在中间加入自己想做的事。而且可能不仅仅是对一个程序,也许是一个包下所有的程序,如图18.1所示。18.1.1面向切面编程的概念在一个程序中使用切面,通常是对程序中的方法进行操作,方法调用和处理异常等待时间段称为连接点。在面向切面编程中,一个连接点就代表一个方法的执行。在Spring中,执行切面编程要用到拦截器的概念,当运行到某一切入点时,会有拦截器响应,这就是通知的概念。18.1.2面向切面编程的功能SpringAOP是使用纯Java语言编写的,所以我们可以很容易的完成对它的扩展。在目前的Spring

4、面向切面编程中,仅支持以方法作为连接点。之所以会这样,是因为在实际开发中以方法作为连接点是应用最多的,对于成员变量的操作是非常少的。下面我们就来重点学习Spring中使用方法做连接点的面向切面编程。18.2使用注解方式进行AOP开发注解是Java5.0版本中提出的新特性技术,通过注解可以使一个普通的Java程序完成特定的功能。在Spring中,要使用注解方法进行AOP开发,需要使用到AspectJ组件技术,通过使用AspectJ的库可以完成对切点的解析和匹配。18.2.1启动AspectJ的支持要想在

5、Spring的面向切面开发中使用注解方式,就需要使用到AspectJ组件技术。要使用AspectJ技术首先要导入AspectJ相关的两个jar包:aspectjweaver.jar和aspectjrt.jar,它们位于lib/aspectj目录下。AspectJ可以在其官方网站:http://www.eclipse.org/aspectj/进行下载。解压aspectj-1.7.1就可以得到需要的jar包,我们只要将其拷贝到创建的项目文件夹下就可以了。导入了AspectJ相关的jar包之外,我们还需要在

6、Spring的applicationContext.xml配置文件中。18.2.2声明切面在启动AspectJ的支持之后,我们在Spring中开发Bean程序时,需要在Bean类的前面加入@AspectJ,从而标明该类是Spring的切面。我们举一个示例如图18.4所示。同样,开发完Bean之后,我们也要在Spring的配置文件中对其进行配置,配置方法如图18.5所示。18.2.3声明切入点切入点决定了连接点关注的内容,使得我们可以控制通知什么时候执行。我们已经知道面向切面编程仅对方法执行,所以切入点

7、也仅仅是判断哪些方法需要进行面向切面编程。声明切入点需要使用@Pointcut注解,并在后面给出切入点表达式,定义关注哪些方法的执行。最后还要给出一个切入点名称,它通过一个没有返回值的普通方法构成。我们可以给出一个例子,如图18.6所示。18.2.4声明通知声明通知的作用是告诉程序应当在切入点的什么时候执行下面的方法。通知有四种类型,如图18.7所示。其中最常用的前置通知是指在切入点方法运行之前进行通知,从而执行下面的方法。前置通知使用的是@Before注解。我们可以给出一个例子,如图18.8所示。1

8、8.3使用注解对数据访问层进行管理我们对如何使用注解方式进行AOP开发已经有了一定的了解,现在我们就通过一个实际的例子来看怎样使用注解对数据访问层进行管理。在实际开发中,数据访问层是不可缺少的一部分。在数据访问层中通常要具有增、删、改、查等一系列方法。在开发过程中,有这样一个需求,不管进行任何操作时,都要通知程序员。如果我们不使用面向切面技术,就只能在每一个操作数据库方法前加入一段代码,这是非常重复的。我们现在就通过注解方式使用切面编程解决这样一个需求。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。