标题：Bitter EJB中文版
基本信息
原书名： Bitter EJB
原出版社： Manning Publications  Bitter EJB中文版作者： （美）Bruce Tate,Mike Clark,Bob Lee,Patrick Linskey  
译者： 于涵 林琪等
出版社：机械工业出版社
ISBN：7111172493
上架时间：2005-10-10
出版日期：2005 年10月
开本：16开
页码：285
版次：1-1
内容简介
畅销书作家bruce tate在辍笔十余年后于2002年又以畅销书《bitter java》再显神威，该书在amazon上创下了难以打破的畅销记录。在这本书的鼓舞下，作者把讨论主题从初级java移向了更具挑战性的领域，即 enterprise java beans(ejb)。
本书完全承袭了《bitter java》的写作风格，讨论了当今大家争论得如火如荼的话题。作者找出并解释了常见的ejb陷阱，并把这些陷阱提升为“反模式”。这些反模式可以帮助人们避免一些最重要的ejb问题，从持久存储到性能领域都有所涉及。书中穿插的一个个冒险小故事，不仅妙趣横生，引人入胜；而且寓意深远，很好地隐喻了每个反模式主题。书中还讨论了何时应该使用ejb以及何时不应该使用，管理会话状态，实体bean的替代方法，性能调优技术，xdoclet、ant和 junit最佳实践，避免各类bean的陷阱等。
古人云：以铜为镜正衣冠；以人为镜明得失。从他人的错误中学习不仅很有意义，而且会有很高的学习效率。
目录
前言
致谢
关于本书
第一部分  基础知识
第1章  取舍之苦
1.1  论战风暴
1.2  ejb反模式的历史
1.2.1  1998年3月：ejb 1.0
1.2.2  1999年11月：ejb 1.1
1.2.3  2001年8月：ejb 2.0
1.3  案例研究：petstore基准测评
1.4  反模式：金榔头
1.4.1  不明智的选择
1.4.2  解决方案：仔细评估
1.5  小结：前瞻
1.6  本章中的反模式
第2章  代价之苦
2.1  层出不穷的争论
2.1.1  ejb的价值
2.1.2  适用ejb的应用
.2.1.3  使用试金石
2.1.4  通过测试
2.1.5  衡量复杂性
2.1.6  估计你的能力
2.2  反模式：大锤打苍蝇
2.2.1  增加复杂性
2.2.2  解决方案：简化
2.2.3  考虑管理多个文件的代价
2.2.4  更细的分析
2.3  实体bean应另当别论
2.4  实体bean：两大进步
2.4.1  本地接口
2.4.2  容器托管关系
2.5  实体bean的深入探讨
2.6  小结
2.7  本章中的反模式
第3章  接口之苦
3.1  构建一个好接口
3.1.1  远程调用性能的下降
3.1.2  传引用与传值
3.2  设计应用层
3.2.1  再看实体bean
3.2.2  质疑ejb本地接口
3.3  反模式：本地和远程接口并存
3.3.1  混合的接口会扰乱异常管理
3.3.2  混合的接口会影响性能
3.3.3  小反模式：到处分布
3.3.4  小反模式：透明分布
3.3.5  解决方案：取得平衡
3.3.6  了解如何分布
3.4  反模式：闯入厨房的顾客
3.4.1  把用餐者推至门外
3.4.2  解决方案：由服务员疏导顾客
3.4.3  使用数据传输对象
3.5  反模式：定制dto
3.6  小结
3.7  本章中的反模式
第二部分  会话和消息
第4章  会话之苦
4.1  线程和同步
4.1.1  反模式：纠缠不清的线程
4.1.2  解决方案：标准化
4.1.3  处理挂起的线程
4.1.4  探寻解决方案
4.2  处理异常
4.2.1  小反模式：异常实现中存在逻辑
4.2.2  解决方案：将逻辑重构移出异常
4.2.3  反模式：吞掉异常
4.2.4  解决方案：一种简单的异常处理策略
4.2.5  反模式：过分受宠的系统异常
4.2.6  解决方案：抛出正确的异常类型
4.3  重复大数据集
4.3.1  反模式：过分耗用数据库连接
4.3.2  解决方案：精确地管理连接
4.3.3  反模式：过于热心的迭代器
4.3.4  解决方案：测试，测试，再测试
4.3.5  缓存结果
4.3.6  导出结果
4.3.7  确定结果的大小
4.3.8  迭代处理重排数据
4.4  高效地互操作
4.4.1  使用iiop
4.4.2  反模式：过窄的servlet桥
4.4.3  解决方案：通用servlet桥
4.5  小结
4.6  本章中的反模式
第5章  会话状态之苦
5.1  谈谈会话状态
5.2  核心反模式：会话包袱
5.2.1  状态之累
5.2.2  减负
5.2.3  解决方案1：转向无状态
5.2.4  解决方案2：在适当的时候充分利用会话状态
5.3  用有状态会话bean管理会话
5.3.1  使用有状态会话bean购物
5.3.2  掀起盖头来
5.4  用servlet管理会话
5.4.1  利用httpsession力求简单
5.4.2  使用servlet购物
5.4.3  扩展servlet会话
5.5  反模式：会话状态金榔头
5.5.1  在客户上存储会话
5.5.2  使用servlet在服务器上存储会话
5.5.3  使用有状态ejb在服务器上存储会话
5.5.4  在数据库中存储会话
5.5.5  再谈购物车
5.5.6  总体解决方案：选择适当的工具
5.6  小反模式：将有状态会话bean用作共享数据缓存
5.7  反模式：会话大杂烩
5.8  小反模式：会话抖动
5.9  小反模式：  腐烂的会话垃圾
5.10  小结：驯兽
5.11  本章中的反模式
笫6章  消息之苦
6.1  jms简介
6.2  一个早期反模式：胖消息
6.2.1  没有万能钥匙
6.2.2  解决方案1：让消息节食
6.2.3  解决方案2：使用引用
6.3  小反模式：瘦消息
6.4  一个订单处理系统雏形
6.4.1  定义系统
6.4.2  设计消息
6.4.3  选择消息模型
6.4.4  应对修改
6.4.5  构建orderrequest生产者
6.5  反模式：xml作为银弹
6.6  反模式：消息拥堵
6.6.1  持久性的代价
6.6.2  持久订购的代价
6.6.3  解决方案：只保存重要的消息
6.7  小反模式：请求立即应答
6.8  使用消息驱动bean
6.8.1  建立mdb池
6.8.2  构建orderrequest消费者
6.9  反模式：自成一体的消费者
6.9.1  听听测试的意见
6.9.2  解决方案：委托给模块化组件
6.10  反模式：烫手的山芋
6.11  反模式：慢吞吞的食客
6.12  反模式：监听
6.12.1  解决方案：使用消息选择器
6.12.2  声明消息选择器
6.12.3  扩展消息选择器
6.13  反模式：事后才考虑性能
6.14  小结：获得消息
6.15  本章中的反模式
第三部分  ejb持久存储
第7章  实体之苦
7.1  理解实体bean反模式
7.2  反模式：裸露的表面
7.2.1  网络往返通信会堵塞应用
7.2.2  失去事务完整性
7.2.3  解决方案：会话外观
7.2.4  使用外观保证事务完整性
7.2.5  使用本地接口
7.3  反模式：一口吞下个大面包
7.3.1  在bmp和cmp间做出选择
7.3.2  解决方案：尽可能选择cmp
7.4  反模式：应用连接
7.4.1  解决方案：把连接委托给数据库
7.4.2  应用连接的常见例子
7.5  反模式：应用过滤器
7.6  反模式：笨重的键
7.7  反模式：旋转门
7.7.1  解决方案1：重构以避免再入
7.7.2  解决方案2：禁用容器的再入检查
7.7.3  解决方案3：游说ejb规范开发小组
7.8  小结
7.9  本章中的反模式
第8章  选择之苦
8.1  理解实体bean的替代选择
8.2  使用ejb持久存储
8.2.1  实现cmp
8.2.2  增加dto和外观
8.2.3  包括部署细节
8.2.4  用bmp实体bean试试看
8.3  用jdbc简化
8.3.1  实现一个简单的jdbc模型
8.3.2  实现jdbc外观
8.3.3  为jdbc部署一个会话外观
8.4  使用对象持久存储框架
8.4.1  衡量对象持久存储环境
8.4.2  理解jdo
8.4.3  用jdo实现一个简单的模型
8.4.4  实现jdo模型的外观
8.4.5  完成方案的部署
8.4.6  比较各种选择
8.5  反模式：持久存储问题
8.5.1  通用实体bean缺点
8.5.2  继承和多态
8.5.3  查询语言灵活性通常很重要
8.5.4  对于本地实体dto需要非ejb方案
8.5.5  容器范围内的持久存储
8.6  解决方案：不要“继承”持久存储体系结构，而应适当选择
8.7  小结
8.8  本章中的反模式
第四部分  更宽泛的话题
第9章  调优之苦
9.1  对成功的度量
9.1.1  响应时间
9.1.2  吞吐量
9.2  反模式：过早的优化
9.2.1  盲目对ejb应用调优
9.2.2  解决方案1：计划，但(先)别采取行动
9.2.3  解决方案2：编写良构的模块化代码
9.3  反模式：事后才考虑性能
9.4  调优点滴
9.4.1  让ejb接受测试
9.4.2  通过测试
9.4.3  指定响应时间作为成功的度量
9.4.4  看到调优隧道尽头的一丝光亮
9.5  反模式：抖动调优
9.6  小反模式：手工性能测试
9.7  利用junitperf完成自动化性能测试
9.7.1  junitperf概览
9.7.2  测试响应时间
9.7.3  调整代码
9.7.4  指定可扩展性作为成功的一个度量
9.7.5  测试负载条件下的响应时间
9.7.6  使用连接池来提高吞吐量
9.7.7  测试吞吐量
9.8  性能建模
9.9  小反模式：怯场
9.10  小结：自信地调优
9.11  本章中的反模式
第10章  构建之苦
10.1  用带子绑个大包
10.1.1  理解一个示例ejb
10.1.2  组织目录结构
10.1.3  填写ejb jar
10.1.4  加载类
10.2  反模式：系统加载的应用类
10.3  反模式：ejb代码重复
10.3.1  解决方案：自动生成eib类
10.3.2  解决方案：自动生成清单
10.3.3  解决方案：自动生成ear描述文件
10.4  反模式：构建权威
10.5  反模式：带着剪刀跑
10.6  反模式：集成地狱
10.7  小结
10.8  本章中的反模式
第11章  苦乐参半的未来
11.1  历史定位
11.2  下一步规划
11.2.1  预计未来
11.2.2  修整持久存储
11.2.3  修整部署策略
11.2.4  考虑经济因素
11.3  反模式和下一步的动作
附  录
附录a  bitter传说
附录b  bitter基础
参考文献