第1章 EJB概述 1
1.1 EJB的基本概念 1
1.1.1 为什么要使用EJB 1
1.2 EJB的体系结构 3
1.2.1 EJB的基础结构 3
1.2.2 EJB的体系结构 4
1.3 JavaBean与EJB的不同 6
1.4 备受争议的EJB 7
1.5 EJB3.0规范全新体验 9
1.5.1 EJB3.0中两个重要的变更 9
1.5.2 Spring与EJB3.0的比较 11
1.5.3 使用EJB3.0简化EJB开发 15
1.6 EJB3.0应用前景 16
1.7 小结 17
第2章 项目开发流程与分析设计概述 18
2.1 项目开发流程RUP 18
2.2 UML概述 21
2.2.1 用例图 22
2.2.2 类图 22
2.2.3 对象图 23
2.2.4 状态图 23
2.2.5 顺序图 24
2.2.6 协作图 25
2.2.7 活动图 25
2.2.8 组件图 26
2.2.9 部署图 26
2.3小结 27
第3章 网上书店项目概述 28
3.1 项目需求分析(usecase) 28
3.2 项目系统分析和设计 32
3.2.1 面向对象分析设计 32
3.2.2 数据库设计(DataModel) 38
3.3 Struts-EJB3.0实现 41
3.3.1 开发工具与环境 41
3.4 小结 42
第4章 EJB3.0开发环境的搭建 43
4.1 EJBContainer的介绍 43
4.2 EJB3.0的开发工具 44
4.3 JBoss服务器 49
4.3.1 JBoss安装目录 49
4.3.2 JBoss中的部署 50
4.3.3 如何进行EJB打包 50
4.3.4 如何进行Web应用打包 51
4.4 开发第一个HelloWorldEJB3.0程序 53
4.5 EJB3.0远程调用 59
4.6 小结 60
第5章 开发会话Bean 61
5.1 会话Bean概述 61
5.1.1 无状态Session Bean 61
5.1.2 有状态的Session Bean 62
5.2 EJB3.0会话Bean的开发 64
5.2.1 StatelessSession Beans(无状态Bean)的开发 64
5.2.2 StatefulSession Beans(有状态Bean)的开发 69
5.3 StatelessSession Bean与Stateful SessionBean的区别 71
5.4 如何改变Session Bean的JNDI名称 72
5.5 Session Bean的生命周期 72
5.6 小结 76
第6章 开发消息驱动Bean 77
6.1 消息驱动Bean概述 77
6.2 消息的处理类型 78
6.2.1 发布/订阅(pub/sub) 78
6.2.2 点对点(PTP) 78
6.3 JMS API 78
6.4 EJB 3.0消息驱动Bean的开发 80
6.5 MDB的特性 84
6.6 小结 85
第7章 开发实体Bean 86
7.1 O/R Mapping概述 86
7.1.1 JPA概述 88
7.2 数据源的配置 88
7.2.1 JBoss数据源的配置 88
7.2.2 实体Bean发布前的准备工作 89
7.2.3 实体Bean的组成文件persistence.xml配置 89
7.3 单表映射的实体Bean 90
7.4 持久化实体管理器EntityManager 96
7.4.1 Entity获取fiind()或getReference() 98
7.4.2 添加persist() 98
7.4.3 更新实体 99
7.4.4 合并Merge() 99
7.4.5 删除Remove() 100
7.4.6 执行EJB 3.0 QL操作createQuery() 100
7.4.7 执行SQL操作createNativeQuery() 101
7.4.8 刷新实体refresh() 101
7.4.9 检测实体当前是否被管理中Contains() 102
7.4.10 分离所有当前正在被管理的实体clear() 102
7.4.11 将实体的改变立刻刷新到数据库中flush() 102
7.4.12 改变实体管理器的Flush模式setFlushMode() 103
7.4.13 获取持久化实现者的引用getDelegate() 104
7.5 复合主键 105
7.5.1 复合主键实例 105
7.6 调用存储过程 110
7.6.1 调用无返回值的存储过程 110
7.6.2 调用返回单值的存储过程 110
7.6.3 调用返回表全部列的存储过程 111
7.6.4 调用返回部分列的存储过程 112
7.7 小结 112
第8章 开发实体Bean 113
8.1 一对一关系 113
8.2 一对多关系 119
8.3 多对多 126
8.4 EJB中的集合映射 133
8.5 小结 134
第9章 继承映射 135
9.1 table per class hierarchy整个类继承树只一张表(根类一张表) 135
9.2 table per class每个类一张表 144
9.3 table per concrete class每个具体的类一张表 148
9.4 小结 149
第10章 EJB 3.0 QL 150
10.1 排序(order by) 150
10.2 查询部分属性 151
10.3 聚合查询(Aggregation) 151
10.4 关联(join) 153
10.5 批量更新(Batch Update) 155
10.6 批量删除(Batch Remove) 155
10.7 使用操作符BETWEEN 155
10.8 使用操作符In 156
10.9 使用操作符Like 156
10.10 使用操作符IS NULL 157
10.11 使用操作符IS EMPTY 158
10.12 使用操作符EXISTS 159
10.13 字符串函数 160
10.14 计算函数 161
10.15 子查询 162
10.16 结果集分页 163
10.17 小结 164
第11章 网上书店实例 165
11.1 EJB3.0组件的实现 165
11.1.1 实体Bean的实现 167
11.1.2 远程接口的实现 172
11.1.3 会话Bean的实现 174
11.1.4 部署到JBoss服务器 175
11.2 Struts实现部分 176
11.2.1 实现步骤 177
11.2.2 功能的实现 178
11.3 部署运行 180
11.4 小结 181
第12章 WebService与SOA的实现 182
12.1 Web Services和SOA概述 182
12.1.1 认识SOA 182
12.1.2 SOA与Web 2.0. 184
12.2 Web Services的概念 186
12.2.1 Web Services的核心技术 187
12.2.2 Web服务开发生命周期 189
12.3 Web Services原理 190
12.3.1 Web服务协议栈 190
12.3.2 真正的电子商务的Web服务 202
12.4 Web Services项目实战 209
12.4.1 Web Services实现 209
12.4.2 Web Services项目实战 212
12.5 小结 219
第13章 EJB3.0的安全和事务 220
13.1 EJB 3.0的安全 220
13.1.1 安全性介绍 220
13.1.2 EJB的安全性 222
13.1.3 自定义安全域 228
13.2 事务管理服务 230
13.2.1 事务概述 230
13.2.2 事务的隔离 231
13.3 EJB中的事务 233
13.3.1 Bean管理事务 233
13.3.2 容器管理事务 235
13.4 EJB 3.0中的事务处理 237
13.5 小结 243
第14章 EJB3.0的其他相关功能 244
14.1 EJB3.0的拦截器 244
14.1.1 EJB3.0拦截器介绍 244
14.1.2 在类中使用外部拦截器示例 245
14.1.3 在类中定义拦截器示例 247
14.2 EJB3.0依赖注入 248
14.2.1 什么是依赖注入 248
14.2.2 注入类型 250
14.2.3 @Resource注释来注入JNDI资源 251
14.2.4 使用@EJB注释注入EJB存根对象 254
14.2.5 通过依赖注入使用WebService 256
14.2.6 使用依赖注入的好处和限制 257
14.3 EJB3.0定时服务 257
14.3.1 定时服务概述 257
14.3.2 定时服务示例 258
14.3.3 定时服务优缺点 260
14.4 小结 260
第15章 EJB3.0的集群 261
15.1 EJB3.0的集群介绍 261
15.2 EJB集群技术分析 262
15.2.1 集群系统特点 262
15.2.2 EJB服务器集群 263
15.2.3 群集无状态会话Bean 266
15.2.4 群集有状态会话Bean 267
15.2.5 群集MDB 269
15.3 小结 269
第16章 测试概述 270
16.1 软件测试概述 270
16.2 常用的测试技术 271
16.3 JUnit单元测试简介 276
16.3.1 安装JUnit 276
16.3.2 测试流程 276
16.3.3 Eclipse与JUnit 279
16.4 JMeter系统测试 281
16.4.1 JMeter简介 281
16.4.2 JMeter测试流程 282
16.4.3 JMeter总结 285
16.5 测试跟踪工具Bugzilla 286
16.5.1 Bugzilla安装 286
16.5.2 Bugzilla操作说明 287
16.5.3 Bugzia管理员操作指南 292
16.6 小结 293
第17章 CVS的使用 294
17.1 CVS介绍 294
17.2 CVS服务器的安装和配置 295
17.3 CVS Eclipse客户端的配置和使用 301
17.4 CVS在eclipse下的冲突处理 308
17.5 小结 318
附录A EJB1.0、EJB2.0和EJB3.0的比较 319
附录B 一些重要的关键字和元数据 360
附录C EJB3.0快速参考手册 373
附录D EJB3.0术语汇编 386
附录E EntityManager的API 399