书籍详情

精通AspectJ:面向方面的Java编程指南

精通AspectJ:面向方面的Java编程指南

作者:(美)Joseph D. Gradecki,(美)Nicholas Lesiecki著;王欣轩,吴东升等译;王欣轩译

出版社:清华大学出版社

出版时间:2005-01-01

ISBN:9787302101611

定价:¥48.00

购买这本书可以去
内容简介
  内容简介目录 本书着眼于AOP范例的全面介绍,可作为一本完整的AspectJ语言手册,以及针对客户当前和未来项目的AOP和AspectJ使用指导。 通过代码片断和全面解释,对所有的aspect概念进行说明。掌握了AspectJ的概念之后,我们再给出大量的例子来阐述如何利用AOP解决实际问题。 本书的Web站点提供了书中的所有代码,网址是www.wiley.com/compbooks/aradecki。网站上有一个包含第个章节的代码的压缩文件。本书中的示例是通过Java SDK 1.4版本创建的(必须安装Java SDK)。除了Java之外,还有AspectJ编译器及运行时组件(这些组件可以在www.eclipse.org/aspectj上找到)。 第1章 AOP简介1.1 00P把我们带到了何处1.2 AOP如何解决OOP问题1.2.1什么是AOP1.2.2 AOP的开发过程1.3 结束语第2章 实现AOP2.1 AOP语言剖析2.1.1 AOP语言规范2.1.2 AOP语言的实现2.2 AspectJ2.3 结束语第3章 AspectJ的获取和安装3.1 AspectJ的要求3.2 下载AspectJ3.3 安装AspectJP3.3.1 设置PATH3.3.2 设置CLASSPATH3.4 安装测试3.5 结束语第4章 实现AspmJ4.1 我们的首个AspectJ程序4.1.1 首先编写组件4.1.2 aspect代码4.1.3 识别连接点4.1.4 确定poincut4.1.5 提供advice4.1.6 增加一个aspect4.1.7 编译和执行这个例子4.2 添加一个新的关注点4.2.1 返回文本的方法4.2.2 把返回方法记入日志4.2.3 一个新的首要关注点4.3 暴露的上下文4.4 类型间声明4.5 aspect粒度4.6 AspectJ编译器功能4.6.1 指定源目录4.6.2 用JAR进行织人4.6.3 指定输出到一个JAR文件4.6.4 创建和使用aspect库4.6.5 阻止织人4.6.6 使用渐进式编译4.7 结束语第5章 AspectJ连接点5.1 动态连接点模型5.2 AspectJ连接点5.3 连接点签名5.4 模式5.4.1类型名称模式5.4.2 子类型模式5.4.3 抛出模式5.4.4 类型模式5.5 反射5.5.1 thisJoinPoint方法5.5.2 thisJoinPointStaticPart方法5.6 连接点示例5.6.1 方法调用接收和执行5.6.2 构造函数的调用接收/执行以及对象初始化5.6.3 字段获取/设置5.6.4 异常处理程序执行5.6.5 类初始化5.7 结束语第6章 AspectJ pointcut6.1 三个类的介绍6.2 建立oointeut6.3 使用指示符6.3.1 指示符快速参考6.3.2 使用逻辑运算符来创建指示符组合6.4 组合pointcut6.4.1 方法相关的pointeut6.4.2 异常处理指示符6.4.3 与域有关的指示符6.4.4 基于状态的指示符6.4.5 基于控制流的指示符6.4.6 类初始化指示符6.4.7 基于程序文本的指示符6.4.8 基于动态属性的指示符6.4.9 adviceexecution6.4.10 preinitialization6.4.11 处理接口6.4.12 匿名pointcut6.4.13 在类中使用aspect6.4.14 创建Factory对象6.4.15 捕获Java库调用6.4.16 访问final属性6.4.17 异常模式6.5 结束语第7章 advice7.1 advice的定义7.1.1 将信息添加到Stem.out.println()中7.1.2 advice7.1.3 形式定义.7.2 所有类型advice中普遍存在的问题7.2.1 将上下文导人advice中7.2.2 advice与异常7.3 advice的类型:概述7.4 before advice7.5 after advice"7.5.1 after advice(无限制型)7.5.2 after抛出7.5.3 after returning7.6 around advice7.6.1 对getProperty()调用进行替换7.6.2 proceed()7.7 advice的优先级7.7.1 优先级的重要性7.7.2 优先级的决定方法7.7.3 运行期执行7.7.4 伪优先级7.8 结束语第8章 类型间声明8.1 类型间声明的简单例子8.1.1 向类中添加方法8.1.2 引入和advice8.2 类型间成员:机制8.2.1 类型间成员的类型8.2.2 类型间声明的目标8.2.3 访问控制8.2.4 成员间的冲突8.3 declare parents8.3.1 添加一个简单的接口8.3.2 declare parents:机制8.4 带有具体成员的接口8.4.1 重构Persistence解决方案8.4.2 带有具体成员的接El:机制8.4.3 带有具体成员的接口的可能性8.5 声明优先级8.5.1 一个优先级的例子8.5.2 声明优先级:机制8.5.3 迂回问题8.5.4 优先级的效果8.6 其他静态横切8.6.1 静态可确定的pointcut8.6.2 自定义编译消息8.6.3 软化异常8.7 结束语第9章 aspec9.1 aspect结构9.2 aspect扩展9.2.1 构建抽象aspect9.2.2 从类和接口中继承9.3 aspect实例化和联合9.3.1 单独的aspect9.3.2 基于每对象的aspect9.3.3 基于每控制流的aspect9.4 aspect支配和优先级9.5 访问aspect对象9.6 aspect特权9.7 结束语第10章 AspecO的开发应用10.1 采用AspectJlO.1.1 采用AspectJ的缘由10.1.2 如何将AspectJ应用到过程中10.1.3 前期开发工作10.1.4 取消AspectJ10.2 开发使用10.2.1 跟踪10.2.2 条件检查10.3 生产aspect10.3.1 日志和计时10.3.2 授权10.4 结束语第11章 使用AspectJ工具11.1 AspectJ编译器选项11.2 aspect结构浏览器11.3 使用AspectJ IDE扩展11.3.1 JBuilder"11.3.2 Forte与NetBeans11.3.3 Emacs 11.3.4 Eclipse11.4 Ant 11.5 调试AspectJ11.5.1 aidb命令行指南11.5.2 aidb GUI指南11.6 使用ajdoc 11.7 结束语第12章 错误处理和一般问题12.1 编译错误12.1.1 错误的编译器12.1.2 无法找到aspectjtools.jar文件12.1.3 内存溢出错误12.1.4 错误的JSDK12.1.5 没有Java编译器12.2 扩展运行时错误处理12.2.1 堆栈溢出12.2.2 连接点不匹配12.3 异常抛出与捕获12.4 使用TraceJoinPoints.java12.5 call指示符与execution指示符的区别12.5.1 this()和target()的使用12.5.2 within和withincode的效果12.6 结束语第13章 面向aspect例子:模式与重用13.1 可重用持久性13.1.1 PersistencePmtocol aspect13.1.2 通过subaspect应用PersistenceProtocol13.2 方法缓存13.3 将模式标记为aspect13.3.1 往aspect的API中添加无效特性13.3.2 Observer模式13.3.3在 AspecU中重用Observer13.4 面向方面的设计13.5 结束语第14章 AspeeO在现实中的应用14.1 添加特性14.1.1 初始应用程序14.1.2 待添加的特性14.1.3 当前设计14.1.4 软件的可继承性14.1.5 编写aspect和源代码14.1.6 测试14.1.7 文档14.1.8 结论14.2 重构网络结构14.2.1 logging14.2.2 计时14.2.3 检查点14.3 结束语附录A AspectJ APIA.1 接口层次关系A.2 类层次关系A.3 AspectJ API说明A.3.1 接口:J0inPointA.3.2 接口:J0inPoint.StaticPartA.3.3 接口:SignatureA.3.4 接口:CatchClauseSignatureA.3.5 接12I:MemberSignatureA.3.6 接口:CodeSignature A.3.7 接口:AdviceSignatureA.3.8 接口:InitializerSignatureA.3.9 接口:MethodSignatureA.3.10 接口:FieldSignatureA.3.11 接口:SourceLocationA.3.12 类:SoftExceptionA.3.13 类:NOAspectBoundException附录B 有帮助的Web站点B.1 概述性站点B.2 人物B.3 自然教程B.4 论文B.5 其他范例B.6 软件开发和系统B.7 事件B.8大学附录C 其他AoP语言绑定 C.1 AspectRC.1.1 说明C.1.2 要求C.1.3 例子代码C.2 AspectSC.2.1 说明C.2.2 要求C.3 ApostleC.3.1 说明C.3.2 要求C.4 AspectCC.4.1 说明C.4.2 要求C.4.3 例子代码C.5 AspectC++C.5.1 说明C.5.2 要求C.5.3 例子代码C.6 PythiusC.6.1 说明C.6.2 要求C.6.3 例子代码
作者简介
暂缺《精通AspectJ:面向方面的Java编程指南》作者简介
目录
第1章 AOP简介
1.1 00P把我们带到了何处
1.2 AOP如何解决OOP问题
1.2.1什么是AOP
1.2.2 AOP的开发过程
1.3 结束语
第2章 实现AOP
2.1 AOP语言剖析
2.1.1 AOP语言规范
2.1.2 AOP语言的实现
2.2 AspectJ
2.3 结束语
第3章 AspectJ的获取和安装
3.1 AspectJ的要求
3.2 下载AspectJ
3.3 安装AspectJP
3.3.1 设置PATH
3.3.2 设置CLASSPATH
3.4 安装测试
3.5 结束语
第4章 实现AspmJ
4.1 我们的首个AspectJ程序
4.1.1 首先编写组件
4.1.2 aspect代码
4.1.3 识别连接点
4.1.4 确定poincut
4.1.5 提供advice
4.1.6 增加一个aspect
4.1.7 编译和执行这个例子
4.2 添加一个新的关注点
4.2.1 返回文本的方法
4.2.2 把返回方法记入日志
4.2.3 一个新的首要关注点
4.3 暴露的上下文
4.4 类型间声明
4.5 aspect粒度
4.6 AspectJ编译器功能
4.6.1 指定源目录
4.6.2 用JAR进行织人
4.6.3 指定输出到一个JAR文件
4.6.4 创建和使用aspect库
4.6.5 阻止织人
4.6.6 使用渐进式编译
4.7 结束语
第5章 AspectJ连接点
5.1 动态连接点模型
5.2 AspectJ连接点
5.3 连接点签名
5.4 模式
5.4.1类型名称模式
5.4.2 子类型模式
5.4.3 抛出模式
5.4.4 类型模式
5.5 反射
5.5.1 thisJoinPoint方法
5.5.2 thisJoinPointStaticPart方法
5.6 连接点示例
5.6.1 方法调用接收和执行
5.6.2 构造函数的调用接收/执行以及对象初始化
5.6.3 字段获取/设置
5.6.4 异常处理程序执行
5.6.5 类初始化
5.7 结束语
第6章 AspectJ pointcut
6.1 三个类的介绍
6.2 建立oointeut
6.3 使用指示符
6.3.1 指示符快速参考
6.3.2 使用逻辑运算符来创建指示符组合
6.4 组合pointcut
6.4.1 方法相关的pointeut
6.4.2 异常处理指示符
6.4.3 与域有关的指示符
6.4.4 基于状态的指示符
6.4.5 基于控制流的指示符
6.4.6 类初始化指示符
6.4.7 基于程序文本的指示符
6.4.8 基于动态属性的指示符
6.4.9 adviceexecution
6.4.10 preinitialization
6.4.11 处理接口
6.4.12 匿名pointcut
6.4.13 在类中使用aspect
6.4.14 创建Factory对象
6.4.15 捕获Java库调用
6.4.16 访问final属性
6.4.17 异常模式
6.5 结束语
第7章 advice
7.1 advice的定义
7.1.1 将信息添加到Stem.out.println()中
7.1.2 advice
7.1.3 形式定义.
7.2 所有类型advice中普遍存在的问题
7.2.1 将上下文导人advice中
7.2.2 advice与异常
7.3 advice的类型:概述
7.4 before advice
7.5 after advice”
7.5.1 after advice(无限制型)
7.5.2 after抛出
7.5.3 after returning
7.6 around advice
7.6.1 对getProperty()调用进行替换
7.6.2 proceed()
7.7 advice的优先级
7.7.1 优先级的重要性
7.7.2 优先级的决定方法
7.7.3 运行期执行
7.7.4 伪优先级
7.8 结束语
第8章 类型间声明
8.1 类型间声明的简单例子
8.1.1 向类中添加方法
8.1.2 引入和advice
8.2 类型间成员:机制
8.2.1 类型间成员的类型
8.2.2 类型间声明的目标
8.2.3 访问控制
8.2.4 成员间的冲突
8.3 declare parents
8.3.1 添加一个简单的接口
8.3.2 declare parents:机制
8.4 带有具体成员的接口
8.4.1 重构Persistence解决方案
8.4.2 带有具体成员的接El:机制
8.4.3 带有具体成员的接口的可能性
8.5 声明优先级
8.5.1 一个优先级的例子
8.5.2 声明优先级:机制
8.5.3 迂回问题
8.5.4 优先级的效果
8.6 其他静态横切
8.6.1 静态可确定的pointcut
8.6.2 自定义编译消息
8.6.3 软化异常
8.7 结束语
第9章 aspec
9.1 aspect结构
9.2 aspect扩展
9.2.1 构建抽象aspect
9.2.2 从类和接口中继承
9.3 aspect实例化和联合
9.3.1 单独的aspect
9.3.2 基于每对象的aspect
9.3.3 基于每控制流的aspect
9.4 aspect支配和优先级
9.5 访问aspect对象
9.6 aspect特权
9.7 结束语
第10章 AspecO的开发应用
10.1 采用AspectJ
lO.1.1 采用AspectJ的缘由
10.1.2 如何将AspectJ应用到过程中
10.1.3 前期开发工作
10.1.4 取消AspectJ
10.2 开发使用
10.2.1 跟踪
10.2.2 条件检查
10.3 生产aspect
10.3.1 日志和计时
10.3.2 授权
10.4 结束语
第11章 使用AspectJ工具
11.1 AspectJ编译器选项
11.2 aspect结构浏览器
11.3 使用AspectJ IDE扩展
11.3.1 JBuilder”
11.3.2 Forte与NetBeans
11.3.3 Emacs 
11.3.4 Eclipse
11.4 Ant 
11.5 调试AspectJ
11.5.1 aidb命令行指南
11.5.2 aidb GUI指南
11.6 使用ajdoc 
11.7 结束语
第12章 错误处理和一般问题
12.1 编译错误
12.1.1 错误的编译器
12.1.2 无法找到aspectjtools.jar文件
12.1.3 内存溢出错误
12.1.4 错误的JSDK
12.1.5 没有Java编译器
12.2 扩展运行时错误处理
12.2.1 堆栈溢出
12.2.2 连接点不匹配
12.3 异常抛出与捕获
12.4 使用TraceJoinPoints.java
12.5 call指示符与execution指示符的区别
12.5.1 this()和target()的使用
12.5.2 within和withincode的效果
12.6 结束语
第13章 面向aspect例子:模式与重用
13.1 可重用持久性
13.1.1 PersistencePmtocol aspect
13.1.2 通过subaspect应用PersistenceProtocol
13.2 方法缓存
13.3 将模式标记为aspect
13.3.1 往aspect的API中添加无效特性
13.3.2 Observer模式
13.3.3在 AspecU中重用Observer
13.4 面向方面的设计
13.5 结束语
第14章 AspeeO在现实中的应用
14.1 添加特性
14.1.1 初始应用程序
14.1.2 待添加的特性
14.1.3 当前设计
14.1.4 软件的可继承性
14.1.5 编写aspect和源代码
14.1.6 测试
14.1.7 文档
14.1.8 结论
14.2 重构网络结构
14.2.1 logging
14.2.2 计时
14.2.3 检查点
14.3 结束语
附录A AspectJ API
A.1 接口层次关系
A.2 类层次关系
A.3 AspectJ API说明
A.3.1 接口:J0inPoint
A.3.2 接口:J0inPoint.StaticPart
A.3.3 接口:Signature
A.3.4 接口:CatchClauseSignature
A.3.5 接12I:MemberSignature
A.3.6 接口:CodeSignature 
A.3.7 接口:AdviceSignature
A.3.8 接口:InitializerSignature
A.3.9 接口:MethodSignature
A.3.10 接口:FieldSignature
A.3.11 接口:SourceLocation
A.3.12 类:SoftException
A.3.13 类:NOAspectBoundException
附录B 有帮助的Web站点
B.1 概述性站点
B.2 人物
B.3 自然教程
B.4 论文
B.5 其他范例
B.6 软件开发和系统
B.7 事件
B.8大学
附录C 其他AoP语言绑定 
C.1 AspectR
C.1.1 说明
C.1.2 要求
C.1.3 例子代码
C.2 AspectS
C.2.1 说明
C.2.2 要求
C.3 Apostle
C.3.1 说明
C.3.2 要求
C.4 AspectC
C.4.1 说明
C.4.2 要求
C.4.3 例子代码
C.5 AspectC++
C.5.1 说明
C.5.2 要求
C.5.3 例子代码
C.6 Pythius
C.6.1 说明
C.6.2 要求
C.6.3 例子代码
猜您喜欢

读书导航