《精通EJB 3.0》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)Rima Patel Sriganesh,(美)Gerald Brose,(美)Micah Silverman著;罗时飞译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2006
  • ISBN:7121032724
  • 页数:500 页
图书介绍:本书是关于EJB 3.0的专业技术教程,专注于EJB的概念、方法、开发过程的介绍。同时,本书还研究许多高端的EJB知识,使得开发者能够真正理解和掌握EJB,实践出真知,通过阅读此书,开发者将精通EJB。全书共分为4个部分:第一部分对EJB编程基础进行介绍,概要性地对EJB进行了阐述;第二部分重点关注EJB编程的具体内容和过程,向开发者展示了如何使用会话Bean、将会话Bean发布为Web服务、消息驱动Bean;第三部分专注于高级EJB专题;第四部分是附录,收集了EJB组件技术相关的其他内容。

第1篇 总述 3

第1章 概述 3

1.1 EJB前奏 4

1.1.1 软件组件 4

1.1.2 呼唤组件化 4

1.2 分布式应用的中间件需求 5

1.2.1 应用服务器级软件 7

1.2.2 标准化组件框架 7

1.3 企业Bean技术 8

1.3.1 钟情Java 9

1.3.2 业务层组件——EJB 10

1.3.3 分布式计算:EJB的支撑 11

1.3.4 EJB中间件服务 13

1.3.5 EJB应用生命周期中的角色 14

1.3.6 EJB生态圈 17

1.4 面向服务架构及EJB 19

1.5 终极无间——可重用服务 20

1.6 Java EE 5.0 22

1.7 小结 26

2.1 传统EJB组件的具体构成 27

第2章 传统的EJB 27

2.2 开发与部署传统EJB组件 29

2.2.1 远程接口 31

2.2.2 本地接口 31

2.2.3 Home接口 32

2.2.4 本地Home接口 33

2.2.5 Bean类 34

2.2.6 部署描述符 35

2.2.7 部署企业Bean组件 35

2.2.8 HelloWorldEJB客户 36

2.3.1 复杂性——EJB 2.x的突出问题 38

2.3 剖析EJB 2.x 38

2.3.2 如何改进EJB 2.x 41

2.4 小结 42

第3章 新一代EJB 43

3.1 介绍EJB 3.0 43

3.1.1 EJB容器 44

3.1.2 EJB组件类型 46

3.1.3 EJB使用的RMI-IIOP 48

3.1.4 EJB与位置透明性 49

3.1.5 EJB环境 50

3.1.6 剖析EJB 3.0 51

3.1.7 Home与对象接口的作用 54

3.2.1 消除Home与对象接口 55

3.2.2 消除组件接口 55

3.2 简化的EJB 3.0 API 55

3.2.3 使用注释 56

3.2.4 简化对环境的访问 59

3.3 打包并部署EJB 3.0组件 60

3.4 EJB 3.0组件实例 61

3.4.1 业务接口 62

3.4.2 Bean类 62

3.4.4 EJB客户 63

3.4.3 部署描述符 63

3.5 术语集合 64

3.6 小结 65

第2篇 EJB组件和实体 69

第4章 会话Bean介绍 69

4.1 会话Bean的生命周期 69

4.2 会话Bean的子类型 70

4.2.1 无状态会话Bean 70

4.2.2 有状态会话Bean 71

4.3.1 实现实例池功能 72

4.3 有状态会话Bean的不同点 72

4.3.2 维护会话状态的规则 73

4.3.3 激活和挂起回调 74

4.3.4 回调方法小结 77

4.3.5 一个简单的有状态会话Bean组件 77

4.3.6 会话Bean的生命周期流程图 86

4.4 小结 89

第5章 将会话Bean发布为Web服务 91

5.1 Web服务概念 91

5.1.1 Web服务标准 93

5.1.2 XML文档和平台无关性 96

5.2 实现Web服务 97

5.2.1 WSDL和XML/Java映射 99

5.2.2 打包和部署暴露Web服务的会话Bean 100

5.3 实现Web服务客户 101

5.4 小结 102

第6章 Java持久化API 103

6.1 对象关系映射 104

6.2 何为实体 106

6.2.1 实体与会话Bean 107

6.2.2 持久化提供者 107

6.2.3 实体类 108

6.2.4 访问持久化上下文中的实体 110

6.2.5 打包和部署实体类 114

6.3 EntityManager API 115

6.3.1 实体的生命周期 116

6.3.2 数据库同步 119

6.4 小结 125

第7章 消息驱动Bean介绍 127

7.1 使用消息的动机 127

7.2 Java消息服务 129

7.2.1 消息域 130

7.2.2 JMS API 131

7.3 集成JMS和EJB 134

7.4 开发消息驱动Bean 138

7.4.1 语义 138

7.4.2 一个简单实例 140

7.5 高级概念 145

7.5.1 事务 145

7.5.2 安全性 145

7.5.3 负载均衡 145

7.5.4 群集中消息的重复消费 146

7.6 基于JMS的消息驱动Bean陷阱 147

7.6.3 坏消息 148

7.6.1 消息顺序 148

7.6.2 错过调用@PreDestroy 148

7.6.4 如何将结果返回给消息生产者 151

7.6.5 异步方法调用 154

7.7 小结 155

第8章 扩充EJB组件的功能 157

8.1 从EJB组件调用其他EJB组件 157

8.2 Annotation 159

8.2.1 公用注释 159

8.2.2 业务接口注释 160

8.2.3 用于有状态会话Bean的注释 161

8.2.4 依赖注入 164

8.2.5 拦截器 167

8.3 小结 172

第3篇 高级EJB概念 175

第9章 高级持久化概念 175

9.1 继承 176

9.1.1 各类继承结构使用单个表 179

9.1.2 各子类使用单独的表 184

9.1.3 各具体实体类使用单个表 186

9.1.4 其他继承模式 186

9.2 多态 188

9.3 关系 190

9.3.1 关系类型 190

9.3.2 1∶1关系 191

9.3.3 1∶N关系 196

9.3.4 M∶N关系 204

9.4 改进的EJB-QL 210

9.4.1 批量更新和删除 211

9.4.2 连接操作 214

9.4.3 GROUP BY和HAVING从句 214

9.4.4 投影 215

9.4.5 高级查询操作 216

9.4.6 在SELECT从句中构造对象 217

9.5 小结 218

第10章 事务 219

10.1 使用事务的动机 219

10.1.1 原子操作 220

10.1.2 网络或机器故障 221

10.1.3 多用户共享数据 221

10.2 事务带来的优势 222

10.3 事务模型 224

10.3.1 平面事务 225

10.3.2 嵌入式事务 226

10.3.3 其他事务模型 227

10.4 分布式事务 227

10.4.1 持久性和2PC协议 228

10.4.2 事务通信协议和事务上下文 229

10.5 Java事务服务和Java事务API 230

10.5.1 OTS和Java事务服务 230

10.5.2 Java事务API 230

10.5.3 JTS和跨应用服务器的分布式事务互操作 231

10.6.2 容器管理、Bean管理及客户控制的事务 232

10.6.1 底层事务系统抽象 232

10.6 EJB事务 232

10.6.3 选择事务风格 235

10.7 容器管理事务 236

10.7.1 EJB事务属性的取值 236

10.7.2 容器管理事务实例 239

10.7.3 应用事务属性到各种EJB组件中 241

10.8 Bean管理事务 243

10.8.1 javax.transaction.UserTransaction接口 243

10.8.2 Bean管理事务实例 245

10.9 客户控制的事务 246

10.10.1 并发控制的必要性 247

10.10 事务隔离 247

10.10.2 隔离级别 248

10.10.3 脏读问题 249

10.10.4 不可重复读和可重复度 250

10.10.5 幻影读问题 251

10.10.6 事务隔离小结 251

10.10.7 在EJB应用中使用各种隔离级别 251

10.10.8 悲观和乐观并发控制 252

10.11 设计EJB中的事务会话 253

10.12 小结 255

第11章 安全性 257

11.1 介绍 257

11.1.1 侵害、弱点和风险 258

11.1.2 控制 259

11.2 Web应用的安全性 260

11.2.1 Web应用的认证 261

11.2.2 授权 262

11.2.3 机密性和集成性 263

11.3 理解EJB安全性 263

11.3.1 EJB应用的认证 263

11.3.2 EJB中的授权 273

11.3.3 安全性传播 283

11.4 安全性互操作 284

11.4.1 基于SSL的IIOP 284

11.4.2 CSIv2 285

11.5 Web服务中的安全性 286

11.5.1 端对端的安全性 287

11.5.2 XML数字签名和XML加密 288

11.5.3 SAML 290

11.5.4 WS-Security 291

11.6 小结 293

第12章 EJB定时器 295

12.1 任务调度 295

12.2 EJB和任务调度 296

12.3 EJB定时器服务 297

12.3.1 定时器服务API 297

12.3.2 EJB同定时器服务的交互 300

12.4 定时器实例——CleanDayLimitOrdersBean 301

12.4.1 CleanDayLimitOrders业务接口 301

12.4.2 CleanDayLimitOrdersBean类 302

12.4.3 CleanDayLimitOrders EJB的部署描述符 304

12.4.5 运行客户 305

12.4.4 CleanDayLimitOrders EJB的客户 305

12.5 EJB定时器服务的优缺点 306

12.6 小结 307

第13章 EJB最佳实践 309

13.1 何时使用EJB 309

13.2 如何选用同EJB协同工作的Web应用框架 311

13.3 在EJB项目中实施MDD 313

13.4 在EJB项目中实施极限编程 314

13.5 测试EJB 316

13.5.1 EJB单元测试 316

13.5.2 借助于框架完成EJB的单元测试 317

13.6 如何在EJB中实现客户端回调功能 319

13.6.1 JMS 319

13.6.2 远程对象调用 319

13.6.3 Web服务 320

13.7 选用Servlet或无状态会话Bean作为服务端点 320

13.8 在EJB项目中考虑使用AOP技术 321

13.8.1 AOP 321

13.8.2 何时在EJB应用中使用AOP 321

13.9 反射、动态代理和EJB 322

13.10 将EJB部署到不同Java EE应用服务器 323

13.11 调试EJB 324

13.12 EJB中的继承和代码复用 326

13.13 在EJB中实现单例(Singleton) 327

13.14 何时在EJB中使用XML 327

13.15 选择消息或RMI-IIOP的时机 328

13.16 小结 330

第14章 EJB性能调优 331

14.1 提前关注 331

14.2 从性能角度看待:有状态对无状态 332

14.3 如何借助于容量规划来保证响应时间 334

14.4 使用会话外观改善性能 335

14.5 选择本地接口还是远程接口 336

14.6 区分资源 337

14.7 无状态会话Bean调优 338

14.8 有状态会话Bean调优 339

14.9 实体调优 340

14.10 MDB调优 342

14.11 Java虚拟机调优 343

14.12 其他调优技巧 344

14.13 正确选用EJB服务器 345

14.14 小结 346

第15章 EJB集成 347

15.1 研究集成的必要性 347

15.2 EJB和集成 348

15.3.1 引入Java EE连接器的理由 349

15.3 Java EE连接器架构 349

15.3.2 资源适配器同Java EE组件交互 351

15.3.3 资源适配器同应用服务器交互 352

15.4 Java EE连接器API 354

15.4.1 javax.resource包 354

15.4.2 javax.resource.cci包 354

15.4.3 javax.resource.spi包 356

15.4.4 javax.resource.spi.endpoint包 358

15.4.5 javax.resource.spi.security包 358

15.5.1 生命周期管理 359

15.4.6 javax.resource.spi.work包 359

15.5 系统契约 359

15.5.2 连接管理 360

15.5.3 安全性管理 363

15.5.4 事务管理 365

15.5.5 工作管理 368

15.5.6 外来消息管理 369

15.6 连接器实例:OutboundLoanRA 371

15.6.1 实例架构 371

15.6.2 JavaLoanApp.java 372

15.6.3 LoadApp.dll 373

15.6.4 OutboundLoanRA 374

15.6.5 LoanRatesEJB 396

15.6.6 LoanRatesClient 398

15.6.7 运行客户 398

15.6.8 扩展OutboundLoanRA 403

15.7 集成最佳实践:使用合适的技术 404

15.7.1 何时使用JMS和基于JMS的MDB 404

15.7.2 何时使用Java EE连接器 404

15.7.3 何时使用Java Web服务 404

15.8 小结 405

16.1 大型系统概述 407

第16章 群集 407

16.1.1 何为大型系统 408

16.1.2 负载均衡和容错 410

16.1.3 基于并排或分布式Java EE容器实施群集 413

16.2 装备群集EJB 415

16.2.1 如何群集EJB 415

16.2.2 幂等性概念 416

16.2.3 群集无状态会话Bean 417

16.2.4 群集有状态会话Bean 419

16.2.5 群集实体 420

16.2.6 群集MDB 422

16.3 其他EJB群集问题 423

16.3.1 初次接触 423

16.3.2 初始访问逻辑 424

16.4 小结 424

第17章 EJB-Java EE集成——构建完整的应用 425

17.1 业务问题 425

17.2 预览最终网站 426

17.3 圈定技术需求 429

17.3.1 业务逻辑层 430

17.3.2 前端展示层 435

17.4 实例代码 440

17.5 小结 450

附录A RMI-IIOP和JNDI教程 451

A.1 Java RMI-IIOP 451

A.1.1 远程方法调用 452

A.1.2 远程接口 454

A.1.3 远程对象实现 455

A.1.4 存根和骨架 456

A.2 对象序列化和参数传递 457

A.2.1 传值 457

A.2.2 CORBA与RMI-IIOP的互操作 462

A.3 Java命名和目录接口 463

A.3.1 为什么要使用JNDI 464

A.3.2 命名和目录服务 464

A.3.3 命名和目录存在的问题 466

A.3.4 进入JNDI 466

A.3.5 JNDI的优势 466

A.3.6 JNDI架构 467

A.3.7 JNDI概念 468

A.3.8 JNDI编程 471

A.4 集成RMI-IIOP和JNDI 472

A.4.1 将RMI-IIOP服务器绑定到JNDI 473

A.4.2 借助于JNDI查找RMI-IIOP服务器 474

A.5 小结 475

附录B 注释 477

B.1 Annotation介绍 477

B.1.1 用于EJB的注释 479

B.1.2 背景 480

B.2 EJB注释参考 482

B.2.1 用于EJB组件类型的注释 482

B.2.2 用于会话Bean和消息驱动Bean的公共注释 484

B.2.3 用于实体的注释 487

B.3 小结 500