EJB 3实战
分類: 图书,计算机/网络,企业软件开发与实施,
作者: (美)潘达(Panda,D.)等著,马朝晖等译
出 版 社: 人民邮电出版社
出版时间: 2008-7-1字数: 756000版次: 1页数: 494印刷时间: 2008/07/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787115177896包装: 平装编辑推荐
“杰作!讲述了EJB 3的方方面面,仅书中的最佳实践就已经物超所值。强烈推荐!”
——Awais Bajwa,JSR 243 JDO专家组成员
“我已经买了所有已出版的EJB 3图书,毫无疑问,本书是最好的,它改变了我对EJB 3的看法。”
——Ashish Srivastava,Oracle工程师
EJB 3是Java EE 5.O中最重要的创新。与EJB 2相比,EJB 3发生了革命性的变化。通过全面拥抱POJO程序设计模型,引入JPA以充分吸取Hibem3ate等对象一关系映射方案的优点,EJB 3大大简化了基于标准的企业应用开发。
本书是EJB 3领域目前公认的不可替代的权威著作。与其他同类图书相比。本书没有过多讲述理论;和IEJB老版本的特性。而是从实战出发,紧扣读者需求,直指EJB 3核心主题,在轻松生动的语言中,带你领略大量代码示例、设计模式、性能调优技巧,以及构造和部署可伸缩应用程序的最佳实践。本书的另一独特之处是充分探讨了EJB与JSF、Ajax甚至Spring等相关技术的集成。通过阅读本书,你将更加深刻地理解Java EE开发的真谛。
作者简介:
Debu Panda,世界级的EJB专家,Oracle Application Server开发团队的产品经理主管,领导着Oracle.Java EE容器的开发。他有15年以上的IT从业经验,在Java Developer's Ioumal、TheServerSide等世界一流技术媒体上发表了大量关于企业级Java技术的文章。
内容简介
本书是公认的EJB 3权威著作,详细介绍了使用EJB 3进行企业级开发的方方面面,包括EJB 3基础、使用EJB 3构造业务逻辑、Java持久化API、EJB 3的实际应用、移植性和互操作性,等等。基于现实场景,本书提供了大量实用的范例代码、最佳实践、设计模式和性能优化技巧。通过对这些知识的学习,开发者能创建健壮的、可扩展的、基于标准的解决方案。
本书既为EJB的初学者提供了精彩的入门指导,又为有经验的EJB开发者提供了详细的指南和参考。
目录
第一部分EJB概述
第1章EJB 3是什么
1.1EJB概述
1.1.1EJB作为组件
1.1.2EJB作为框架
1.1.3分层架构和EJB
1.1.4为什么选择EJB 3
1.2了解EJB类型
1.2.1会话bean
1.2.2消息驱动bean
1.2.3实体和JPA
1.3深入EJB
1.3.1访问EJB服务:EJB容器
1.3.2访问JPA服务:持久化提供器
1.3.3使用EJB服务的功能
1.4EJB的新生
1.4.1HelloUser示例
1.4.2简化的程序设计模型
1.4.3用注解,不用部署描述文件
1.4.4依赖注入与JNDI查找
1.4.5简化的持久化API
1.4.6可进行单元测试的POJO组件
1.4.7EJB 3和Spring
1.5小结
第2章EJB 3初体验
2.1新特性:简化EJB
2.1.1使用注解替换部署描述文件
2.1.2依赖注入简介
2.2ActionBazaar应用程序简介
2.2.1从构造的一个子集开始
2.2.2基于EJB 3的解决方案
2.3使用会话bean构造业务逻辑
2.3.1使用无状态bean
2.3.2无状态bean客户端
2.3.3使用有状态bean
2.3.4有状态bean客户端
2.4消息和消息驱动bean
2.4.1生成账单消息
2.4.2使用订单账单消息处理器MDB
2.5使用EJB 3 JPA持久化数据
2.5.1使用JPA
2.5.2使用EntityManager
2.6小结
第二部分使用EJB 3构造业务逻辑
第3章使用会话bean构造业务逻辑
3.1会话bean简介
3.1.1为什么使用会话bean
3.1.2会话bean基础
3.1.3了解程序设计原则
3.1.4会话状态和会话bean类型
3.1.5bean生命周期回调
3.2无状态会话bean
3.2.1BidManagerBean示例
3.2.2使用@Stateless注解
3.2.3指定业务接口
3.2.4使用bean生命周期回调
3.3有状态会话bean
3.3.1附加程序设计原则
3.3.2BidderAccountCreatorBean示例
3.3.3有状态bean的业务接口
3.3.4有状态bean的生命周期回调
3.4会话bean客户端
3.4.1使用@EJB注解
3.4.2注入和有状态会话bean
3.5有状态bean的性能注意事项
3.5.1有效地使用有状态会话bean
3.5.2有状态会话bean的替代方式
3.6会话bean最佳实践
3.7小结
第4章消息和开发MDB
4.1消息概念
4.1.1面向消息的中间件
4.1.2ActionBazaar中的消息
4.1.3消息模型
4.2Java消息服务简介
4.2.1开发JMS消息生产者
4.2.2JMS消息接口
4.3使用消息驱动bean
4.3.1为什么使用MDB
4.3.2程序设计原则
4.3.3使用MDB开发消息消费者
4.3.4使用@MessageDriven注解
4.3.5实现MessageListener
4.3.6使用ActivationConfig-Property
4.3.7使用bean生命周期回调
4.3.8从MDB发送JMS消息
4.3.9管理MDB事务
4.4MDB最佳实践
4.5小结
第5章学习高级EJB概念
5.1EJB内幕
5.1.1幕后的EJB
5.1.2EJB上下文:访问运行时环境
5.2使用依赖注入和JNDI访问资源
5.2.1使用@Resource注入资源
5.2.2@Resource注解实际应用
5.2.3查找资源和EJB
5.3EJB中的AOP:拦截器
5.3.1AOP是什么
5.3.2拦截器是什么
5.3.3指定拦截器
5.3.4实现业务拦截器
5.3.5拦截器类中的回调方法
5.4调度:EJB 3计时器服务
5.4.1计时器是什么
5.4.2使用计时器服务
5.4.3何时使用EJB计时器
5.5小结
第6章事务和安全
6.1了解事务
6.1.1ActionBazaar中的事务解决方案
6.1.2ACID属性
6.1.3事务管理内幕
6.1.4两阶段提交
6.1.5EJB中的事务管理
6.2容器管理的事务
6.2.1使用CMT实现Snag-It订购
6.2.2@TransactionManagement注解
6.2.3@TransactionAttribute注解
6.2.4使CMT使用回调
6.2.5事务和异常处理
6.3bean管理的事务
6.3.1使用BMT实现Snag-It订购
6.3.2获得UserTransaction
6.3.3使用UserTransaction
6.3.4BMT的优缺点
6.4分析EJB安全
6.4.1验证和授权
6.4.2用户、组和角色
6.4.3ActionBazaar中的安全问题
6.4.4EJB 3和Java EE安全
6.4.5声明式安全
6.4.6使用EJB程序式安全
6.5小结
第三部分研究JPA
第7章实现域模型
7.1域建模和JPA
7.1.1介绍域模型
7.1.2ActionBazaar问题域
7.1.3域模型参与者
7.1.4EJB 3 Java持久化API
7.1.5域对象作为Java类
7.2使用JPA实现域对象
7.2.1@Entity注解
7.2.2持久化实体数据
7.2.3指定实体身份
7.2.4@Embeddable注解
7.3实体关系
7.3.1@OneToOne
7.3.2@OneToMany和@ManyToOne
7.3.3@ManyToMany
7.4小结
第8章对象关系映射
8.1阻抗失配
8.1.1把对象映射到数据库
8.1.2介绍O/R映射
8.2映射实体
8.2.1指定表
8.2.2映射列
8.2.3使用@Enumerated
8.2.4映射CLOB和BLOB
8.2.5映射临时类型
8.2.6把实体映射到多个表
8.2.7生成主键
8.2.8映射可嵌入类
8.3映射实体关系
8.3.1映射一对一关系
8.3.2一对多和多对一
8.3.3多对多
8.4映射继承
8.4.1单表策略
8.4.2联结表策略
8.4.3每个类一个表策略
8.4.4映射多态关系
8.5小结
第9章使用EntityManager操作实体
9.1介绍EntityManager
9.1.1EntityManager接口
9.1.2实体的生命周期
9.1.3持久化上下文、作用域和EntityManager
9.1.4在ActionBazaar中使用EntityManager
9.2创建EntityManager实例
9.2.1容器管理的EntityManager
9.2.2应用程序管理的EntityManager
9.3管理持久化操作
9.3.1持久化实体
9.3.2通过主键检索实体
9.3.3更新实体
9.3.4删除实体
9.3.5通过转储清除控制更新
9.3.6刷新实体
9.4实体生命周期监听器
9.4.1使用实体监听器
9.4.2默认监听器类
9.4.3监听器类的执行顺序和排除
9.5实体操作最佳实践
9.6小结
第10章使用查询API和JPQL检索实体
10.1介绍查询API
10.1.1背景
10.1.2剖析查询
10.1.3定义命名查询
10.2执行查询
10.2.1创建查询实例
10.2.2使用Query接口
10.2.3指定查询提示
10.3介绍JPQL
10.3.1定义语句类型
10.3.2使用FROM子句
10.3.3条件表达式和操作
10.3.4使用JPQL函数
10.3.5使用SELECT子句
10.3.6使用聚合
10.3.7排序查询结果
10.3.8使用子查询
10.3.9联结实体
10.3.10批更新和批删除
10.4原生SQL查询
10.4.1使用原生SQL的动态查询
10.4.2使用命名原生SQL查询
10.5小结
第四部分EJB 3的实际应用
第11章打包EJB 3应用程序
11.1给应用程序打包
11.1.1剖析EAR文件
11.1.2加载EAR模块
11.2分析类加载
11.2.1类加载基础
11.2.2分析典型的父委托模型
11.2.3Java EE应用程序中的类加载
11.2.4Java EE模块之间的相关性
11.3打包会话bean和消息驱动bean
11.3.1打包EJB-JAR
11.3.2部署描述文件与注解
11.3.3使用部署描述文件覆写注解
11.3.4指定默认拦截器设置
11.3.5使用厂商专有的注解和描述文件
11.4打包实体
11.4.1暴露持久化模块
11.4.2使用persistence.xml描述持久化模块
11.4.3使用orm.xml执行O/R映射
11.5最佳实践和常见部署问题
11.5.1打包和部署最佳实践
11.5.2诊断常见部署问题
11.6小结
第12章有效地跨越应用程序层集成EJB
12.1设计模式和Web技术
12.1.1表现层
12.1.2使用EAO模式
12.1.3介绍Session Facade模式
12.2从Web层访问会话bean
12.2.1使用依赖注入访问会话bean
12.2.2从帮助器类引用会话bean
12.2.3处理事务
12.2.4处理有状态会话bean
12.3从Web层使用JPA
12.3.1使用容器管理的实体管理器
12.3.2通过JTA事务使用应用程序管理的EntityManager
12.3.3在容器外访问应用程序管理的EntityManager
12.4小结
第13章驯服EJB:性能和可伸缩性
13.1处理实体锁定问题
13.1.1了解锁定类型
13.1.2乐观锁定和实体版本
13.1.3EntityManager和锁定模式
13.2提高实体性能
13.2.1重新建模和重新设计计划
13.2.2优化JDBC层
13.2.3减少数据库操作
13.2.4提高查询性能
13.2.5缓存
13.3提高EJB 3组件的性能
13.3.1会话bean性能
13.3.2提高MDB性能
13.4集群EJB应用程序
13.4.1协同定位架构
13.4.2无状态会话bean的负载平衡
13.4.3集群有状态会话bean
13.4.4实体和集群缓存
13.5小结
第五部分移植和互操作性
第14章移植到EJB 3
14.1与EJB 2的向后兼容性和互操作性
14.1.1将EJB 2和EJB 3打包在一起
14.1.2从EJB 3调用EJB 2
14.1.3从EJB 2使用EJB 3
14.2移植会话bean
14.2.1转换接口和bean类
14.2.2资源使用
14.2.3事务和安全设置
14.2.4客户端应用程序
14.3移植消息驱动bean
14.4把CMP 2实体移植到EJB 3 JPA
14.4.1重新设计域模型
14.4.2DTO用作实体
14.4.3实体bean类和接口
14.4.4客户端应用程序
14.5移植JDBC DAO使用EJB 3 JPA
14.5.1标识实体
14.5.2重新构造DAO实现类使用EntityManager API
14.5.3SQL查询转换为JPQL
14.6帮助O/R框架使用EJB 3 JPA
14.7移植方法
14.7.1策略
14.7.2手工与自动
14.8小结
第15章把EJB暴露为Web服务
15.1Web服务是什么
15.1.1认识Web服务组件
15.1.2Web服务样式
15.1.3开发Web服务的方法
15.2JAX-WS:Java EE 5 Web服务平台
15.2.1介绍Web服务平台
15.2.2与POJO相比,为什么选择EJB用于Web服务
15.3使用JAX-WS 2.0开发EJB Web服务
15.3.1使用@WebService注解
15.3.2使用@SOAPBinding指定Web服务样式
15.3.3使用@WebMethod注解
15.3.4使用@WebParam注解
15.3.5使用@WebResult注解
15.3.6使用@OneWay和@HandlerChain注解
15.4从EJB访问Web服务
15.4.1访问PlaceBid Web服务
15.4.2EJB作为Web服务客户
15.5Web服务开发的最佳实践
15.6小结
第16章EJB 3和Spring
16.1Spring框架简介
16.1.1Spring框架的优势
16.1.2控制反转原理
16.1.3关注分离原理
16.2通过Spring使用JPA
16.2.1构造Spring的JPA EAO
16.2.2配置Spring使用JPA
16.3结合EJB 3和Spring的功能
16.3.1开发支持Spring的EJB
16.3.2从Spring bean使用会话bean
16.4小结
附录ARMI和JNDI
附录B复习关系数据库
附录C注解参考
附录D部署描述文件参考
附录E安装和配置Java EE 5 SDK
资源
索引
书摘插图
第一部分EJB概述
本书的主题是EJB 3——令人注目的企业JavaBean标准的新版本。EJB的重生来得正是时候,这一切归功于Java SE 5引入的创新,倒如元数据注解、依赖注入和基于对象-关系映射的持久化等概念。
第1章介绍EJB技术。本间讲解了EJB作为开发平台的独特实力以及提高工作效率和易用性的非常好的新特性。
……