ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 学习Web设计(第3版)

学习Web设计(第3版)

原创 Linux操作系统 作者:china-pub 时间:2008-11-04 17:53:35 0 删除 编辑

学习Web设计(第3版)



其他详细信息查看:http://www.china-pub.com/301704

【原 书 名】 Learning Web Design: A Beginner's Guide to (X)HTML, StyleSheets, and Web Graphics 
【原出版社】 O'Reilly Media, Inc. 
【作  者】(美)Jennifer Niederst Robbins
【译  者】 靳志伟
【出 版 社】 机械工业出版社     【书 号】 9787111238768 
【出版日期】 2009 年1月 【开 本】 16开 【页 码】 454     【版 次】1-1 
     市场价 :¥65.00     pub价:¥48.75  

【内容简介】
这里有设计专业网站需要的一切。本书从说明网站和网页是如何工作开始,逐步深入。当你看完本书时,你将掌握使用优化的图像文件来创建多列CSS布局的技术,而且你将知道如何创建网页。.
这一版经过了彻底的修订,它可以教你如何根据现代设计的实践经验和专业标准来创建网站。..
本书包含了一些练习,可以帮助你学习各种技术,还有一些小测验可以确保你及时掌握重要的概念。如果你对网站设计感兴趣,本书将是你的起点!
本书讲述了:
·如何创建一个简单的(X)HTML页面并添加链接和图片。
·一切你需要知道的网站标准。比如(X)HTML、DTD等等。
·层叠样式表 格式化文本,颜色和背景、使用盒子模式、页面布局等。
·关于网站图像的知识,以吸如何通过优化来使网站图像清晰且精致。
·网站开发的流程。从开始到结束。
·把你的网页放到网上去——主机、域名和FTP。...

【前言】
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公司在技术上的大力支持,并且由飞思科技产品研发中心负责监制工作,在此表示衷心的感谢!尽管我们尽了最大努力,但本书难免会有不妥之处,欢迎各界专家和读者朋友批评指正。...
编著者
飞思科技产品研发中心

【目录】
第1部分  AOP基础篇.
在目前的Java应用中,大多数的软件项目都选择了OOP的编程方式。的确,OOP已经表明了它处理一般行为的能力,但是,OOP不能很好地处理横越多个(经常是不相关的)模块的行为,相比之下,AOP填补了这个空白,它是编程方法学发展的又一个里程碑。
第1章  AOP的产生 3
软件开发经过了结构化(SA)、面向对象(OO)与设计模式(Design Pattern)、组件化(Component)、面向方面(AOP)直至面向服务(SOA)这条技术发展之路,AOP是为了解决业务核心代码与日志、权限、事务等通用功能代码混杂的问题而产生的。
1.1  软件开发方法的演进 3
1.1.1  结构化方法SP(Structured Programming) 3
1.1.2  面向数据结构的软件开发方法DOP(Data-Oriented Programming) 4
1.1.3  面向问题的分析法PAM(Problem Analysis Method) 5
1.1.4  面向对象编程OOP(Object-Oriented Programming) 5
1.1.5  面向界面的可视化开发方法 7
1.1.6  组件化编程CP(Component Programming) 8
1.1.7  面向方面编程AOP(Aspect-Oriented Programming) 8
1.1.8  面向服务架构SOA(Service-Oriented Architecture) 9
1.2  AOP产生的前奏——把系统看做一批关注点 11
1.2.1  拆分关注点 11
1.2.2  拆分需求 12
1.3  AOP产生的理由——传统方法存在的问题 13
1.3.1  多维需求一维实现 13
1.3.2  用传统方式实现 13
1.3.3  传统方式带来的问题 14
1.3.4  传统方式导致的结果 14
1.3.5  现有的3种解决办法 14
1.3.6  AOP能更好地解决问题 15
1.4  下一个主题:AOP基础理论 15
第2章  AOP基础理论 17
通过实例直观地讲解AOP的入门知识、应用开发与核心技术,为应用篇讲解AspectWerkz、AspectJ、Spring AOP做好理论准备。
2.1  AOP入门知识 17
2.1.1  AOP简介 17
2.1.2  AOP是设计模式的延续 18
2.1.3  第一个AOP程序HelloWorld 18
2.1.4  使用AOP的优点 19
2.1.5  使用AOP需要考虑的问题 20
2.2  AOP应用开发 21
2.2.1  AOP的开发过程 21
2.2.2  AOP的实现语言 22
2.2.3  AOP的应用范围 22
2.2.4  AOP最佳实践——为HelloWorld添加日志功能 23
2.2.5  AOP最佳实践——为HelloWorld添加权限控制功能 24
2.3  AOP核心技术 24
2.3.1  AOP名词解释 25
2.3.2  AOP通知类型 26
2.3.3  AOP织入过程 26
2.3.4  AOP织入策略 27
2.3.5  AOP织入时机 28
2.4  AOP开源框架 30
2.4.1  AspectWerkz 31
2.4.2  AspectJ 31
2.4.3  Spring 32
2.4.4  其他AOP框架 33
2.5  下一个主题:AspectWerkz应用篇 33
第2部分  AspectWerkz应用篇
spectWerkz是一个基于Java的简单易用、功能强大、免费开源的AOP框架,既强大又简单,有助于用户更容易地使AOP集成到新的或已存在的项目中。AspectWerkz在Eclipse下也有辅助的开发插件。
第3章  AspectWerkz入门基础 37
从本章开始,我们将逐步揭开AspectWerkz的神秘面纱,了解AspectWerkz概要、主要特性和版本发展,安装AspectWerkz的开发环境,包括JDK、AspectWerkz、Eclipse与MyEclipse。
3.1  认识AspectWerkz 37
3.1.1  AspectWerkz简介 38
3.1.2  AspectWerkz主要特性 39
3.1.3  AspectWerkz版本发展 40
3.2  安装AspectWerkz的开发环境 45
3.2.1  安装与配置JDK 46
3.2.2  安装与配置AspectWerkz 47
3.2.3  安装与配置Eclipse 48
3.2.4  安装MyEclipse 50
3.3  下一个主题:AspectWerkz应用开发详解 52
第4章  AspectWerkz应用开发详解 53
AspectWerkz有3种开发方式:使用命令行进行开发、使用Eclipse+Ant进行开发、使用Eclipse+ApsectWerkz插件进行开发,这3种方式从简单到复杂,从原始到自动化,越来越容易开发AOP。
4.1  第1种:使用命令行进行开发——实例演示AWHelloWorld1 54
4.1.1  新建目标类com.demo.HelloWorld.java 55
4.1.2  新建方面类com.demo.MyAspect.java 56
4.1.3  定义XML关联文件aop.xml 56
4.1.4  织入与运行 57
4.1.5  编写Annotation方面类com.demo.MyAspectWithAnnotations.java 58
4.1.6  编写Annotation的XML关联文件aopWithAnnotations.xml 60
4.1.7  织入与运行Annotation的类 60
4.2  第2种:使用Eclipse+Ant进行开发——实例演示AWHelloWorld2 62
4.2.1  编写Ant的构建文件build.xml 63
4.2.2  编写属性文件aw.properties 67
4.2.3  从AWHelloWorld1.zip中添加类代码 68
4.2.4  运行构建任务 68
4.2.5  程序的调试 70
4.3  第3种:使用Eclipse+AspectWerkz插件进行开发——
实例演示AWHelloWorld3 71
4.3.1  安装AspectWerkz插件 71
4.3.2  从AWHelloWorld1.zip中添加类代码 72
4.3.3  运行AOP程序 73
4.3.4  Aspect查看器 74
4.3.5  编写带Java 5注释符的方面类 75
4.4  织入方面类前后的对比 77
4.4.1  下载并安装反编译工具 77
4.4.2  织入前的HelloWorld.class反编译结果 77
4.4.3  织入后的HelloWorld.class反编译结果 78
4.5  实际应用案例AWHelloWorld 80
4.5.1  新建目标类com.demo.HelloWorld.java 80
4.5.2  新建方面类com.demo.HelloWorldHijacker.java 81
4.5.3  新建XML文件META-INF/aop.xml 81
4.6  下一个主题:开发Aspect核心类 82
第5章  AspectWerkz核心技术——开发Aspect核心类 83
AspectWerkz应用开发中的重要元素——Aspect方面类,它是AspectWerkz应用开发的核心元素。Aspect方面类的开发,包括编写Aspect方面类、编写Advice通知函数、JointPoint输入参数。
5.1  编写Aspect方面类 83
5.1.1  Aspect类的修饰类型 84
5.1.2  Aspect类的构造函数 84
5.1.3  Aspect类的继承 85
5.2  编写Advice通知函数 86
5.2.1  Advice函数的修饰类型 86
5.2.2  通知的类型和Advice函数形式 87
5.3  JoinPoint输入参数 88
5.3.1  JoinPoint类型的输入参数 88
5.3.2  StaticJoinPoint类型的输入参数 89
5.4  下一个主题:关联Aspect核心类 90
第6章  AspectWerkz核心技术——关联Aspect核心类 91
开发了Aspect核心类,要让这些Aspect类发挥作用,就需要通过一定的方法来将Aspect类与目标类关联起来,那么如何将Aspect类与众多的Java目标类进行关联呢?AspectWerkz为我们提供了标准的匹配表达式规范,用来将Aspect类与Java目标类进行匹配,可以将不同的Aspect类与不同的Java目标类进行关联。
6.1  匹配模式语言 92
6.1.1  通配符 92
6.1.2  类的匹配 92
6.1.3  方法的匹配 93
6.1.4  构造函数的匹配 94
6.1.5  变量的匹配 95
6.1.6  子类的匹配 95
6.1.7  数组的匹配 96
6.2  匹配表达式 96
6.2.1  匹配函数 96
6.2.2  匹配运算符 98
6.2.3  如何引用匹配表达式 98
6.3  第1种关联方式:使用Annotation定义关联 99
6.3.1  使用@Aspect设置Aspect部署模式 100
6.3.2  使用@Expression自定义一个表达式 100
6.3.3  设置Advice通知函数 102
6.3.4  在XML中申明Aspect类 105
6.4  第2种关联方式:使用XML文件定义关联 105
6.4.1  使用定义Aspect类 106
6.4.2  使用定义匹配表达式 106
6.4.3  使用定义Advice通知函数 107
6.4.4  使用传递参数到Aspect类中 109
6.4.5  使用定义包 109
6.4.6  使用设置包的范围 110
6.4.7  定义 110
6.4.8  添加DTD 111
6.4.9  完整的XML样例 111
6.4.10  XML命名方式 112
6.5  下一个主题:AspectWerkz在Java EE项目中的应用 112
第7章  AspectWerkz在Java EE项目中的应用 113
在Java EE实例项目中开发基于AspectWerkz的AOP功能,包括日志记录器、性能分析器、权限检查拦截器,最后形成AOP应用案例包demo_ssh_oa_aw.zip。
7.1  安装Java EE项目的开发环境 114
7.1.1  安装并运行数据库MySQL 114
7.1.2  安装Tomcat 116
7.1.3  配置Tomcat与Eclipse的集成 119
7.2  运行Java EE项目 120
7.2.1  将项目导入到Eclipse中 121
7.2.2  发布项目到Tomcat中并启动Tomcat 124
7.2.3  登录该项目的系统界面 126
7.3  开发前的准备工作 127
7.3.1  分析项目包结构 127
7.3.2  添加AspectWerkz库 129
7.4  应用一:开发AOP日志记录器 129
7.4.1  创建日志记录器类Logger.java 130
7.4.2  在aop.xml中配置该日志记录器 133
7.4.3  织入日志记录器到Action类中 133
7.4.4  发布并运行项目查看运行结果 136
7.5  应用二:开发AOP性能分析器 137
7.5.1  创建性能分析器类Timer.java 138
7.5.2  在aop.xml中配置该性能分析器 139
7.5.3  织入性能分析器到Action类中 140
7.5.4  发布并运行项目查看运行结果 142
7.6  应用三:开发AOP权限检查拦截器 143
7.6.1  创建权限检查拦截器类AuthorizationInterceptor.java 143
7.6.2  在aop.xml中配置该权限检查拦截器 145
7.6.3  织入权限检查拦截器到Action类中 146
7.6.4  发布并运行项目查看运行结果 147
7.7  程序结构图 148
7.8  下一个主题:AspectJ应用篇 149
第3部分  AspectJ应用篇
spectJ是AOP的Java语言的实现,它为Java语言增添了新的语法规则。初次接触AspectJ的读者看到这些资料(或者语法手册),会感到AspectJ有些神秘。AspectJ是对Java程序的无缝的、面向方面的扩展,与原有的Java程序完全兼容,并且较容易学习和使用。
第8章  AspectJ入门基础 153
目前最成熟、功能最丰富的AOP框架当数AspectJ,AspectJ已成为大多数框架跟从的标准。首先我们需要了解AspectJ为何物,以及AspectJ的安装与配置过程。
8.1  AspectJ概述 153
8.1.1  AspectJ简介 154
8.1.2  AspectJ的产生 154
8.1.3  AspectJ的版本发展 155
8.2  AspectJ安装与配置 155
8.2.1  下载AspectJ安装程序 156
8.2.2  安装AspectJ 157
8.2.3  认识AspectJ安装后的目录 161
8.2.4  配置AspectJ 161
8.2.5  测试AspectJ环境 162
8.3  下一个主题:AspectJ应用开发详解 162
第9章  AspectJ应用开发详解 163
AspectJ提供了两种开发与编译的方式,第一种方式是使用AspectJ自带的脚本命令,第二种方式是使用AspectJ安装包中提供的Ant构建任务。
9.1  使用AspectJ命令行开发 164
9.1.1  类路径的属性变量 164
9.1.2  ajc——编译时和编译后织入类 165
9.1.3  aj——加载时织入类 171
9.1.4  ajdoc——生成Javadoc文档 172
9.1.5  ajbrowser——AspectJ浏览器 174
9.2  使用Ant任务进行开发 179
9.2.1  AjcTask(iajc) ——执行类的编译与运行 179
9.2.2  Ajc11CompilerAdapter(javac) ——切换javac的编译器执行编译 186
9.2.3  Ajc10(ajc) ——执行类的编译与运行 189
9.3  下一个主题:在Eclipse中使用AJDT开发 AspectJ应用 191
第10章  在Eclipse中使用AJDT开发AspectJ应用 193
前面讲解的使用命令行和使用Ant工具进行开发的两种方式,都是手工操作的方式。为了进行更高效的可视化开发,AspectJ同时提供了与各种IDE软件的集成插件,包括与Eclipse、JBuilder、NetBeans、Emacs和JDeveloper的集成,AspectJ与Eclipse的集成是比较流行的开发方式。
10.1  AJDT下载与安装.. 194
10.1.1  AJDT简介 194
10.1.2  AJDT的发布版本 195
10.1.3  AJDT的下载安装包 195
10.1.4  AJDT的两种安装方式 197
10.2  AJDT应用开发详解——开发实例AspectJHelloWorld 200
10.2.1  创建AspectJ项目的两种方式 201
10.2.2  配置AspectJ项目AspectJHelloWorld 205
10.2.3  新建一个目标类HelloWorld.java 207
10.2.4  新建一个方面类MyAspect.aj 207
10.2.5  在MyAspect.aj中添加通知函数 209
10.2.6  对比HelloWorld.class织入前后的不同 210
10.2.7  运行目标类HelloWorld.java查看结果 212
10.3  AJDT的高级功能 213
10.3.1  目标类视图——查看HelloWorld.java 213
10.3.2  方面类视图——查看MyAspect.aj 214
10.3.3  AspectJ图形化视图 215
10.4  AspectJ与其他IDE的集成 216
10.4.1  AspectJ与JBuilder的集成插件 216
10.4.2  AspectJ与NetBeans的集成插件 217
10.4.3  AspectJ与Emacs and JDEE的集成插件 218
10.4.4  jdeveloperaop插件 219
10.5  下一个主题:AspectJ核心语法详解 220
第11章  AspectJ核心语法详解 221
根据前面的讲解,我们已经对AspectJ的开发过程有了直观了解,并了解到AspectJ应用开发中的重要元素——Aspect方面类,它是AspectJ应用开发的核心元素。本章就来讲解AspectJ核心类——Aspect方面类的开发。
11.1  编写Aspect方面类 222
11.1.1  Aspect类的定义 222
11.1.2  Aspect类的继承 223
11.1.3  Aspect类的抽象 223
11.2  编写Aspect连接点函数 224
11.2.1  定义连接点函数 224
11.2.2  匹配表达式的函数类型 225
11.2.3  匹配表达式的通配符 228
11.2.4  匹配表达式的组合 229
11.2.5  在连接点中传递上下文参数 229
11.3  编写Aspect通知函数 230
11.3.1  通知函数的语法格式 231
11.3.2  通知函数的5种类型 231
11.3.3  通知函数的异常处理 234
11.3.4  使用JointPoint访问上下文信息 235
11.4  使用Annotation编写Aspect类 236
11.4.1  定义Aspect的注释符@Aspect 236
11.4.2  定义连接点的注释符@Pointcut 237
11.4.3  定义通知的5种注释符 238
11.4.4  定义声明的3种注释符 241
11.5  Annotation开发实例——AnnotationHelloWorld 242
11.5.1  创建项目AnnotationHelloWorld 242
11.5.2  使用@Aspect修饰方面类MyAspect.aj 243
11.5.3  使用@Pointcut修饰连接点函数methods() 245
11.5.4  使用@Before修饰通知函数before() 245
11.5.5  使用@Around修饰通知函数around() 246
11.5.6  使用@After修饰通知函数after() 247
11.5.7  运行目标类HelloWorld.java查看结果 248
11.6  下一个主题:AspectJ对Java 5新特性的支持 249
第12章  AspectJ对Java 5新特性的支持 251
AspectJ为了支持Java5的新特性,进行了许多改进,包括注释、泛型、自动装箱与拆箱、类型覆盖、可变变量和枚举。
12.1  使用Java 5注释符(Annotation) 251
12.1.1  Java 5中的注释符 251
12.1.2  在Aspect中使用Java 5注释符 253
12.1.3  在匹配表达式中匹配Java 5注释符 255
12.1.4  为目标代码注入Java 5注释符 257
12.1.5  为目标函数注入错误信息 258
12.1.6  为目标类设置继承类和接口 258
12.1.7  设置Aspect类的执行顺序 258
12.2  使用Java 5泛型(Generics) 259
12.2.1  Java 5中的泛型知识 259
12.2.2  在Aspect中应用泛型 261
12.2.3  为目标类设置参数化的继承类和接口 264
12.2.4  定义参数化的Aspect类 264
12.3  使用Java 5自动装箱(AutoBoxing)与 拆箱(Unboxing) 265
12.3.1  Java 5中的自动装箱 265
12.3.2  Java 5中的自动拆箱 266
12.3.3  在Aspect中使用装箱与拆箱 266
12.4  Java 5中的类型覆盖(Covariance) 267
12.4.1  Java 5中的类型覆盖是什么 267
12.4.2  在Aspect中进行匹配 268
12.5  使用Java 5可变变量类型(Varargs) 268
12.5.1  Java 5中的可变变量类型 268
12.5.2  在Aspect中匹配可变变量类型 269
12.6  使用Java 5枚举类型(Enum) 270
12.6.1  Java 5中的枚举类型 270
12.6.2  在Aspect中使用枚举类型 273
12.7  下一个主题:AspectJ在Java EE项目中的应用 273
第13章  AspectJ在Java EE项目中的应用 275
在Java EE实例项目中开发基于AspectJ的AOP功能,包括日志记录器、性能分析器、权限检查拦截器、异常监视器、在线用户监视器,最后形成AOP应用案例包demo_ssh_oa_aspectj.zip。
13.1  开发前的准备工作 276
13.1.1  运行该Java EE项目 276
13.1.2  分析项目包结构 276
13.1.3  添加AspectJ库 278
13.1.4  将项目转换为AspectJ项目 278
13.2  应用一:AOP日志记录器 279
13.2.1  创建日志记录器类Logger.aj 280
13.2.2  记录用户登录信息 281
13.2.3  记录用户退出信息 283
13.2.4  记录用户操作信息 285
13.2.5  查看Logger.aj连接点导航图 287
13.2.6  发布并运行项目,查看运行结果 289
13.3  应用二:AOP性能分析器 290
13.3.1  创建性能分析器类Timer.aj 290
13.3.2  记录用户操作时间信息 292
13.3.3  查看Timer.aj连接点导航图 294
13.3.4  发布并运行项目,查看运行结果 295
13.4  应用三:AOP权限检查拦截器 297
13.4.1  创建权限检查拦截器类AuthorizationInterceptor.aj 297
13.4.2  验证用户的操作 299
13.4.3  查看AuthorizationInterceptor.aj连接点导航图 302
13.4.4  发布并运行项目,查看运行结果 303
13.5  应用四:AOP异常监视器 305
13.5.1  创建异常监视器类ExceptionMonitor.aj 305
13.5.2  捕捉用户操作的异常 307
13.5.3  查看ExceptionMonitor.aj连接点导航图 309
13.5.4  发布并运行项目,查看运行结果 310
13.6  应用五:AOP在线用户监视器 311
13.6.1  创建在线用户监视器类OnlineUser.aj 311
13.6.2  监视用户的操作 313
13.6.3  查看OnlineUser.aj连接点导航图 315
13.6.4  发布并运行项目,查看运行结果 317
13.7  程序结构图 317
13.8  下一个主题:Spring AOP应用篇 318
第4部分  Spring AOP应用篇
S
pring框架中目前最吸引人的也是该应用框架最具特色的地方就是名为控制反转(IoC,Inverse of Control)或者依赖注入(DI,Dependence Injection)的设计思想,这是一种相当优秀的设计思想,即“好莱坞”原则:不用你主动来找我,我会通知你。但是,仅仅凭借着这样一个单纯的设计模式并不能使得Spring如此成功,Spring最成功的地方,还是目前使用最为广泛的AOP应用,也就是Spring中基于AOP实现的业务管理机制,也正是由于这一点,使得Spring AOP成为应用框架中极其闪光的一个亮点。
第14章  Spring与IoC入门基础 321
Spring是一个轻量的控制反转和面向切面的容器框架。Spring框架所提供的众多功能之所以能成为一个整体,正是建立在IoC的基础之上,当然本书要讲解的AOP也是构建在IoC基础之上的,因此对这一内涵简单、外延丰富的技术我们有必要进行详细介绍。
14.1  了解Spring框架 321
14.1.1  Spring的产生与发展 321
14.1.2  Spring框架结构图 322
14.1.3  Spring组件包详解 323
14.2  了解IoC控制反转 326
14.2.1  IoC与DI的基本概念 327
14.2.2  IoC模式的实例讲解 327
14.2.3  利用Java反射机制实现IoC容器 332
14.2.4  Spring中IoC容器的实现方式 338
14.2.5  IoC模式的优缺点 338
14.3  依赖注入的3种类型 340
14.3.1  Type1接口注入 340
14.3.2  Type2构造注入 341
14.3.3  Type3设值注入 341
14.3.4  3种类型对比总结 342
14.4  Spring的IoC容器装载机制 343
14.4.1  BeanFactory的使用步骤 344
14.4.2  配置的属性 346
14.4.3  配置的子元素 350
14.4.4  ApplicationContext 354
14.5  下一个主题:Spring的安装与配置 357
第15章  Spring的安装与配置 359
要进行基于Spring的功能开发,就需要添加Spring的开发支持环境。所谓的Spring支持环境,就是在Java Web应用中所添加的Spring所需要的jar、tld、xml文件,有了这些文件我们就可以开发Spring相关的功能代码。
15.1  使用MyEclipse自动添加Spring 360
15.1.1  使用MyEclipse添加Spring开发环境 360
15.1.2  结果预览:Spring支持包列表 362
15.1.3  结果预览:Spring配置文件列表 362
15.2  手动添加Spring 363
15.2.1  第一步:添加Spring的jar支持包 363
15.2.2  第二步:添加Spring的tld标签库文件 363
15.2.3  第三步:添加Spring的核心配置文件applicationContext.xml 363
15.2.4  第四步:添加日志配置文件 364
15.3  Spring入门样例——SpringTest 364
15.3.1  在applicationContext.xml中添加Bean配置 364
15.3.2  新建Bean类——HelloWorld.java 364
15.3.3  运行测试类Test.java 365
15.4  下一个主题:基于@Aspect注释符的AOP开发 366
第16章  基于@Aspect注释符的AOP开发 367
Spring的AOP组件实现了AOP联盟约定的接口,它是由纯Java开发完成的。Spring实现AOP的方法与其他的框架不同,它侧重于提供一种AOP实现和Spring IoC容器的整合,使用@Aspect注解的方式就是第一种AOP实现方式。
16.1  定义方面类(Aspect) 368
16.1.1  在applicationContext.xml中启用@Aspect注释 368
16.1.2  在applicationContext.xml中声明一个切面类MyAspect.java 369
16.2  定义切入点函数(Pointcut) 370
16.2.1  Spring中切入点语法知识 370
16.2.2  定义切入点函数Pointcut() 373
16.2.3  新建目标类HelloWorld.java 373
16.3  定义通知函数(Advice) 374
16.3.1  前置通知(Before advice) 375
16.3.2  返回后通知(After Returning Advice) 375
16.3.3  抛出后通知(After Throwing Advice) 376
16.3.4  后通知(After (Finally) Advice) 377
16.3.5  环绕通知(Around Advice) 378
16.3.6  多个通知函数的执行顺序 379
16.4  通知函数的参数 380
16.4.1  访问目标对象的连接点 380
16.4.2  传递参数给通知函数(Advice) 381
16.4.3  自定义参数名 382
16.5  完整的实例——SpringAnnotation 383
16.5.1  applicationContext.xml文件 383
16.5.2  MyAspect.java 383
16.5.3  编写测试类Test.java 384
16.5.4  运行测试类Test.java 385
16.5.5  打包SpringAnnotation.zip 386
16.6  下一个主题:基于Schema的AOP开发 386
第17章  基于Schema的AOP开发 387
上一章中我们讲解了使用@Aspect来开发AOP的功能,@Aspect是Java 5中的注释符,因此它是基于Java5的新特性来进行开发的。有时也许你不想使用Java 5的注释符,或者你比较喜欢使用XML格式,那么Spring 2.0也提供了使用新的AOP命名空间来定义一个切面。
17.1  配置applicationContext.xml 387
17.1.1  切换到Schema模式 388
17.1.2  引入spring-aop命名空间 388
17.2  开始配置元素 389
17.2.1  的元素构成 389
17.2.2  申明一个切面 389
17.2.3  声明一个切入点 390
17.3  声明通知 391
17.3.1  前置通知(Before Advice) 391
17.3.2  返回后通知(After Returning Advice) 392
17.3.3  抛出异常后通知(After Throwing Advice) 393
17.3.4  后通知(After (Finally) Advice) 394
17.3.5  环绕通知(Around Advice) 395
17.3.6  通知参数 395
17.3.7  通知顺序 396
17.4  完整的实例——SpringSchema 396
17.4.1  applicationContext.xml文件 396
17.4.2  MyAspect.java 397
17.4.3  编写测试类Test.java 398
17.4.4  运行测试类Test.java 398
17.4.5  打包SpringSchema.zip 399
17.5  下一个主题:基于SpringAPI的AOP开发 400
第18章  基于SpringAPI的AOP开发 401
前面两章介绍了Spring中提供的由@AspectJ和基于Schema的两种切面定义的AOP。Spring提供了自己的API,来实现基于AOP的功能。在这一章,我们将讨论更底层的Spring AOP API,以及如何在Spring应用中使用这些API。
18.1  新建项目SpringAOPDemo 401
18.1.1  新建接口类IHelloWorld 401
18.1.2  新建实现类HelloWorld 401
18.1.3  配置applicationContext.xml 402
18.2  Spring里的通知Advice类型 402
18.2.1  环绕通知 402
18.2.2  前置通知 403
18.2.3  异常通知 403
18.2.4  后置通知 404
18.3  配置Advisor和AOP代理 405
18.3.1  Spring里的Advisor 405
18.3.2  使用ProxyFactoryBean创建AOP代理 405
18.4  运行结果 406
18.4.1  编写测试类Test.java 406
18.4.2  运行环绕通知 407
18.4.3  运行前置通知 407
18.4.4  运行异常通知 408
18.4.5  运行后置通知 410
18.5  打包SpringAOPDemo.zip 411
18.6  下一个主题:Spring AOP在Java EE项目中的应用 412
第19章  Spring AOP在Java EE项目中的应用 413
Spring AOP在Java EE项目中的应用:在Java EE实例项目中开发基于Spring的AOP功能,包括日志记录器、性能分析器、权限检查拦截器、异常监视器、在线用户监视器,最后形成AOP应用案例包demo_ssh_oa_spring.zip。
19.1  选择@Aspect还是Schema 414
19.2  开发前的准备工作 415
19.2.1  运行该Java EE项目 415
19.2.2  分析项目包结构 415
19.2.3  添加AspectJ库 416
19.3  应用一:AOP日志记录器 417
19.3.1  创建日志记录器类Logger.java 417
19.3.2  记录用户登录信息 418
19.3.3  记录用户退出信息 420
19.3.4  记录用户操作信息 421
19.3.5  在applicationContext.xml中配置Logger组件 422
19.3.6  发布并运行项目,查看运行结果 422
19.4  应用二:AOP性能分析器 424
19.4.1  创建性能分析器类Timer.java 424
19.4.2  记录用户操作时间信息 425
19.4.3  在applicationContext.xml中配置Timer组件 426
19.4.4  发布并运行项目,查看运行结果 427
19.5  应用三:AOP权限检查拦截器 428
19.5.1  创建权限检查拦截器类AuthorizationInterceptor.java 429
19.5.2  验证用户的操作 430
19.5.3  在applicationContext.xml中配置AuthorizationInterceptor组件 431
19.5.4  发布并运行项目,查看运行结果 432
19.6  应用四:AOP异常监视器 433
19.6.1  创建异常监视器类ExceptionMonitor.java 433
19.6.2  捕捉用户操作的异常 435
19.6.3  在applicationContext.xml中配置ExceptionMonitor组件 436
19.6.4  发布并运行项目,查看运行结果 436
19.7  应用五:AOP在线用户监视器 436
19.7.1  创建在线用户监视器类OnlineUser.java 437
19.7.2  监视用户的操作 438
19.7.3  在applicationContext.xml中配置OnlineUser组件 440
19.7.4  发布并运行项目,查看运行结果 440
19.8  程序结构图 441
19.9  下一个主题:Spring与AspectJ的集成 441
第20章  Spring与AspectJ的集成 443
对于AspectJ程序员来说,也许希望使用Spring来管理和配置Aspect的类,类的织入仍然交给AspectJ来处理,这样Spring只是利用了它的IoC来配置AspectJ,体现了插件配置的方便性。而Spring也为此提供了准备,spring-aspects.jar包用以提供Spring与AspectJ的集成。
20.1  配置Spring到AspectJ的集成 443
20.1.1  添加支持包spring-aspects.jar 443
20.1.2  配置Aop命名空间 444
20.1.3  切换到AspectJ 444
20.2  配置AspectJ并运行 445
20.2.1  配置aop.xml 445
20.2.2  发布并运行项目,查看运行结果 445
20.2.3  改变方面类组件,查看运行结果 447
20.3  程序结构图... 448

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16566727/viewspace-485719/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-10-29

  • 博文量
    922
  • 访问量
    1360461