开发者突击:精通AOP整合应用开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

AOP(Aspect Oriented Programming),即面向方面编程,是施乐公司帕洛阿尔托研究中心(Xerox PARC)在20世纪90年代发明的一种编程方式。AOP是从OOP中抽象出来的“方面”的概念,目的是为了打破对象的封装性。它以“方面”的方式对原有的模块进行重组,抽取那些与业务无关却为整个系统所通用的功能,并将其最终封装在一起。

在Java的世界里,AOP已经走向比较成熟的应用。从AOP体现的能力上来说,AspectWerkz、AspectJ、Spring已经渐趋成熟,Dynaop、JAC、JBoss AOP等也有各自的优势,它们在日志记录(Logging)、权限管理(Authentication)、错误处理(Error Handling)、事务处理(Transactions)、持久化(Persistence)等方面都取得了很好的应用。

AOP在企业应用中正逐渐体现其自身的价值,它的作用更多地是关注于系统的某一方面。AOP不是对OOP的颠覆,而是对OOP的改进与优化,它能够改进OOP系统的以下问题:代码重复、可读性差、可重用性差。因此本书的目标也是应用AOP来改进OOP系统架构,让我们的代码看起来更加简单、清晰。

一、本书特色

本书结合技术性、深入性、实用性,从内在原理和实际应用两个方面讲解AOP,是一本全面的参考书。本书具有如下特点。

● 以理论为基础:AOP是3个框架的基础,IoC是Spring应用AOP的基础;

● 层层递进:AOP→AspectWerkz→AspectJ→SpringAOP,AspectJ5是AspectWerkz与AspectJ的合并版本,Spring又是以AspectJ为基础的框架,可以实现与AspectJ的集成;

● 实例讲解:在讲解AOP及其他3个框架的应用技术时,处处以实例进行讲解,让初学者也能够驾轻就熟。

二、本书的组织结构和主要内容

本书的内容总体上分为4个部分,从第一篇AOP基础理论开始,逐步介绍各种AOP框架的应用开发技术,并结合实际的案例进行讲解。各部分内容如下:

1.AOP基础篇——AOP的产生与基础理论

(1)讲解AOP的产生与发展过程,概述AOP能够做什么。

(2)通过实例直观地讲解AOP的入门知识、应用开发与核心技术,为应用篇的讲解做好理论准备。

2.AspectWerkz应用篇——AspectWerkz技术讲解与3个应用案例

(1)了解AspectWerkz的简介、主要特性和版本发展,以及安装AspectWerkz的开发环境,包括JDK、AspectWerkz、Eclipse与MyEclipse。

(2)通过实例的形式讲解AspectWerkz的3种开发方式:使用命令行进行开发、使用Eclipse+Ant进行开发、使用Eclipse+ApsectWerkz插件进行开发,并演示了在Eclipse+ApsectWerkz插件方式下开发的一个实际应用。

(3)讲解AspectWerkz核心类——Aspect方面类的开发,包括编写Aspect方面类、编写Advice通知函数、JointPoint输入参数。

(4)讲解Aspect类的匹配模式语言、匹配表达式,并讲解了两种Aspect关联方式:Annotation和XML定义方式。

(5)重点讲解3个最具代表性的AOP应用的开发,包括AOP日志记录器、AOP性能分析器、AOP权限检查拦截器。

3.AspectJ应用篇——AspectJ技术讲解与5个应用案例

(1)讲解AspectJ的简介、产生与发展,以及安装AspectJ的开发环境并测试安装。

(2)通过实例的形式讲解AspectJ的两种开发方式,即命令行开发方式和Ant开发方式,包括4个命令和3种Ant任务。

(3)通过实例讲解如何使用AJDT进行方面类的开发,以及AJDT的高级功能,最后简单讲解了AspectJ与JBuilder、NetBeans、Emacs和JDeveloper的继承插件。

(4)详细讲解Aspect方面类、连接点函数和通知函数的编写方法,然后讲解使用Annotation编写Aspect类的方法,并给出开发的实例。

(5)讲解AspectJ对Java 5的新特性的支持,包括注释符、泛型、自动装箱与拆箱、类型覆盖、可变变量和枚举。

(6)在Java EE实例项目中开发基于AspectJ的AOP功能,包括日志记录器、性能分析器、权限检查拦截器、异常监视器、在线用户监视器,最后形成AOP应用案例包demo_ssh_oa_aspectj.zip。

4.Spring AOP应用篇——Spring技术讲解与5个应用案例

(1)Spring与IoC入门基础:讲解Spring的IoC基础知识,为AOP的讲解做好准备。

(2)Spring的安装与配置:讲解搭建Spring的开发环境,并通过实例演示搭建的过程。

(3)AOP的3种方式:

● 第一种方式——基于@Aspect注解:对于新的应用程序,如果用户使用Java 5开发,我们推荐用户使用@Aspect风格。

● 第二种方式——基于模式(schema-based)的方式:对于不支持Java 5的应用开发,可以使用这种模式。

● 第三种方式——使用Spring的API开发AOP。

(4)Spring AOP在Java EE项目中的应用:在Java EE实例项目中开发基于Spring的AOP功能,包括日志记录器、性能分析器、权限检查拦截器、异常监视器、在线用户监视器,最后形成AOP应用案例包demo_ssh_oa_spring.zip。

(5)Spring与AspectJ的集成:本章基于demo_ssh_oa_spring.zip进行修改,实现Spring与AspectJ的集成,最后形成新的软件包demo_ssh_oa_spring2aspectj.zip。

三、本书范例程序

本书从第1部分到第4部分逐层深入,每一个篇章都是先讲解技术然后讲解实际的应用,在技术的讲解中也贯穿案例程序。

● AspectWerkz应用范例程序:demo_ssh_oa_aw.zip;

● AspectJ应用范例程序:demo_ssh_oa_aspectj.zip;

● Spring应用范例程序:demo_ssh_oa_spring.zip;

● Spring与AspectJ集成应用范例程序:demo_ssh_oa_spring2aspectj.zip。

四、光盘使用说明

本书配套光盘包含以下目录。

1.software目录

在该目录下仅包含了本书所需要的软件安装包的下载存放目录,并在software\readme.txt中详细记录了每一个软件的官方网站、所需版本和该版本的下载链接地址,请读者在学习本书前到指定的网址中去下载各个软件。

说明:考虑到版权问题,我们只提供了这些软件的下载链接地址。这些下载地址在本书写作时都已经经过了验证确认,有些链接也许需要您注册登录后才能够下载。如果下载的链接地址不存在,则表明该网站已经移除了该链接,请您在指定的官方网站上找到下载的页面来下载对应版本的文件。

本书所使用的所有软件的安装程序包括:

● JDK的安装软件(JDK 1.5.0);

● MySQL服务器的安装软件(MySQL 5.1.22,SQL-Front 3.3);

● Tomcat的安装软件(Tomcat 5.5.25);

● Eclipse的中文插件(Eclipse 3.1.1);

● Ant软件(Ant 1.7.0);

● AspectWerkz(AspectWerkz 2.0RC2);

● Jad软件(Jadnt 158);

● AspectJ(aspectj-1.5.4.jar);

● Spring(spring-framework-2.0.6.zip)。

2.source目录

在该目录下包含了本书开发的所有案例程序、系统及数据库,并且还包含了3部分源代码。

首先是Java EE样例项目。

● demo_ssh_oa.zip:样例项目;

● database.zip:样例项目的MySQL数据库文件及其建表SQL。

下面为3个框架的案例程序,以及在样例项目中实现AOP后的系统。

(1)AspectWerkz(位于子目录aw下)

● AWHelloWorld1.zip:使用命令行方式开发的演示程序;

● AWHelloWorld2.zip:使用Eclipse+Ant方式开发的演示程序;

● AWHelloWorld3.zip:使用Eclipse+AspectWerkz插件方式开发的演示程序;

● AWHelloWorld.zip:使用Eclipse+AspectWerkz插件方式开发的实际应用程序;

● demo_ssh_oa_aw.zip:基于Java EE项目demo_ssh_oa.zip开发AOP后的项目包,实现了日志记录器、性能分析器、权限检查拦截器的AOP实现。

(2)AspectJ(位于子目录aspectj下)

● AspectJHelloWorld.zip:使用AJDT插件方式开发的实际应用程序;

● AnnotationHelloWorld.zip:使用Annotation开发的实际应用程序;

● demo_ssh_oa_aspectj.zip:基于Java EE项目demo_ssh_oa.zip开发AOP后的项目包,实现了日志记录器、性能分析器、权限检查拦截器、异常监视器、在线用户监视器的AOP实现。

(3)Spring(位于子目录spring下)

● SpringTest.zip:安装Spring后的测试实例。

● SpringAnnotation.zip:基于@Aspect开发的Spring AOP实际应用程序;

● SpringSchema.zip:基于Schema开发的Spring AOP实际应用程序;

● SpringAPIDemo.zip:基于Spring的API开发的AOP实际应用程序;

● demo_ssh_oa_spring.zip:基于Java EE项目demo_ssh_oa.zip开发Spring AOP后的项目包,实现了日志记录器、性能分析器、权限检查拦截器、异常监视器、在线用户监视器的Spring AOP实现;

● demo_ssh_oa_spring2aspectj.zip:基于demo_ssh_oa_spring.zip进行修改,实现Spring与AspectJ的集成,最后形成新的软件包demo_ssh_oa_spring2aspectj.zip。

提示:在source目录中共提供了10个演示程序、4个实际程序包。请读者按照书中的讲解配置好开发环境,导入这些项目即可运行。首先将要运行的程序包解压缩到Eclipse的工作目录(如D:\eclipse\workspace),单击Eclipse左侧的项目工作区空白处,然后单击鼠标右键,在弹出的右键菜单中选择“导入”,再在弹出的导入窗口中选择“从现有项目到工作空间中”,并选择刚才解压缩后的程序目录,最后单击“确定”按钮即可导入到Eclipse中。

六、致谢

本书在编写过程中得到了Apache软件组织和SUN公司在技术上的大力支持,并且由飞思科技产品研发中心负责监制工作,在此表示衷心的感谢!尽管我们尽了最大努力,但本书难免会有不妥之处,欢迎各界专家和读者朋友批评指正。

编著者

飞思科技产品研发中心

联系方式

咨询电话:(010)6813454588254160

电子邮件:support@fecit.com.cn

服务网址:http://www.fecit.com.cn http://www.fecit.net

通用网址:计算机图书、飞思、飞思教育、飞思科技、FECIT