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

精通AspectJ:面向方面的Java编程指南
作 者: Joseph Gradecki Nicholas Lesiecki 王欣轩 吴东升 王欣轩
出版社: 清华大学出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《精通AspectJ:面向方面的Java编程指南》作者简介

内容简介

内容简介目录 本书着眼于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 this...

图书目录

第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 例子代码