译者序
序言
前言
致谢
关于作者
第一部分 EJB模式语言
第1章 EJB层次构架模式 2
1.1 会话外观(Session Fa峚de) 3
1.2 消息外观(Message Fa峚de) 9
1.3 EJB 命令(EJB Command) 14
1.4 数据传送对象工厂(Data Transfer
Object Factory) 20
1.5 通用属性访问(Generic Attribute
Access) 25
1.6 业务接口(Business Interface) 31
第2章 层间数据传送模式 35
2.1 数据传送对象(DTO) 35
2.2 域数据传送对象(Domain Dto) 39
2.3 定制数据传送对象(Custom DTO) 43
2.4 数据传送散列映像(Data Transfer
HashMap) 45
2.5 数据传送行集(Data Transfer RowSet) 48
第3章 事务和持久性模式 53
3.1 版本号 53
3.2 用JDBC 读取数据 59
3.3 数据访问命令bean 63
3.4 双重持久性实体bean 69
第4章 客户端EJB交互模式 72
4.1 EJBHome工厂 72
4.2 业务代理 77
第5章 主键生成策略 83
5.1 序列块 83
5.2 EJB的全局惟一标识符 89
5.3 自动生成键的存储过程 93
第二部分 EJB设计与实现的最佳实践
第6章 从需求到模式驱动的设计 98
6.1 TheServerSide论坛消息系统用例 98
6.2 设计问题和术语的快速回顾 100
6.2.1 什么是域模型 100
6.2.2 理解J2EE系统中的层 101
6.3 模式驱动EJB架构 103
6.4 服务层模式 107
6.4.1 异步用例 107
6.4.2 同步用例 107
6.4.3 其他服务层模式 109
6.5 层间数据传送模式 110
6.6 应用层模式 113
6.7 小结 114
第7章 EJB开发过程:用Ant构建, 用
Junit单元测试 115
7.1 开发顺序 115
7.1.1 独立于层的编码 117
7.1.2 首先是域层 117
7.1.3 其次是持久层 118
7.1.4 第三是服务层 119
7.1.5 最后是客户端层 119
7.2 自动化环境: 用Ant管理 120
7.2.1 什么是J2EE应用环境 120
7.2.2 管理J2EE应用环境意味着什么 120
7.2.3 使用Ant 122
7.3 用JUnit进行单元测试 136
7.4 小结 144
第8章 实体bean的替代品 146
8.1 实体bean的特性 146
8.2 实体bean和认知差异 147
8.3 捍卫实体bean 148
8.4 实体bean的替代品简介 149
8.4.1 使用直接JDBC操作/存储过程 150
8.4.2 使用第三方的O/R映像产品 150
8.4.3 构建定制的持久性框架 150
8.4.4 使用java数据对象 150
8.5 Java数据对象简介 151
8.5.1 需要的类及其依赖关系 151
8.5.2 构建和部署过程 152
8.5.3 继承 153
8.5.4 客户端API 154
8.5.5 动态与静态的查找机制 154
8.6 EJB开发者使用JDO的指南 154
8.6.1 准备EJB环境 155
8.6.2 配置会话bean 155
8.6.3 执行用例和事务管理 156
8.6.4 容器管理的事务 156
8.6.5 bean管理的事务 158
8.6.6 缓存/惰性加载和引用定位 159
8.6.7 查找JDO 159
8.6.8 层间数据传送 161
8.7 小结 162
第9章 EJB的设计策略. 习惯用语和
技巧 163
9.1 不使用组合实体bean模式 163
9.2 采用Field命名惯例以允许在EJB 2.0
CMP 实体bean中执行数据确认 164
9.3 不要在实体bean上Get和Set值/数据
传送对象 164
9.4 如果能够被正确使用, 就可以使用
Java的Singleton类 164
9.5 使用预定更新而不是实时计算 165
9.6 使用一个被序列化的java类来将编译器
类型检查添加到与消息驱动bean的交互
操作中 166
9.7 在发生应用异常时总是调用setRollback
Only 166
9.8 限制传递给ejbCreate的参数 167
9.9 不要在ejbCreate中使用数据传送对象 167
9.10 不要使用XML作为一种DTO机制来
进行通信, 除非确实需要使用它 168
附录 模式代码清单 169
参考文献 204