词条 | EJB3实战 |
释义 | 详细介绍了使用EJB3进行企业级开发的方方面面,包括EJB3基础、使用EJB3构造业务逻辑、Java持久化API、EJB3的实际应用、移植性和互操作性,等等。基于现实场景,本书提供了大量实用的范例代码、最佳实践、设计模式和性能优化技巧。通过对这些知识的学习,开发者能创建健壮的、可扩展的、基于标准的解决方案。本书是一本快速上手指南。对于EJB的初学者而言,本书提供了精彩的入门指导;对于从EJB2迁移到EJB3的有经验的开发者来说,本书在EJBAPI、Java持久化等多个方面提供了详细的参考。 版权信息书 名: EJB3实战 作 者:(美国)DebuPanda (美国)DerekLane 出版社: 人民邮电出版社 出版时间: 2008 ISBN: 9787115177896 开本: 16 定价: 69.00 元 目录第一部分 EJB概述 第1章 EJB3是什么 2 1.1 EJB概述 3 1.1.1 EJB作为组件 3 1.1.2 EJB作为框架 4 1.1.3 分层架构和EJB 5 1.1.4 为什么选择EJB3 8 1.2 了解EJB类型 9 1.2.1 会话bean 10 1.2.2 消息驱动bean 11 1.2.3 实体和JPA 11 1.3 深入EJB 12 1.3.1 访问EJB服务:EJB容器 13 1.3.2 访问JPA服务:持久化提供器 13 1.3.3 使用EJB服务的功能 14 1.4 EJB的新生 15 1.4.1 HelloUser示例 16 1.4.2 简化的程序设计模型 17 1.4.3 用注解,不用部署描述文件 17 1.4.4 依赖注入与JNDI查找 18 1.4.5 简化的持久化API 18 1.4.6 可进行单元测试的POJO组件 19 1.4.7 EJB3和Spring 20 1.5 小结 21 第2章 EJB3初体验 22 2.1 新特性:简化EJB 23 2.1.1 使用注解替换部署描述文件 23 2.1.2 依赖注入简介 26 2.2 ActionBazaar应用程序简介 27 2.2.1 从构造的一个子集开始 27 2.2.2 基于EJB3的解决方案 28 2.3 使用会话bean构造业务逻辑 30 2.3.1 使用无状态bean 30 2.3.2 无状态bean客户端 31 2.3.3 使用有状态bean 33 2.3.4 有状态bean客户端 36 2.4 消息和消息驱动bean 38 2.4.1 生成账单消息 38 2.4.2 使用订单账单消息处理器MDB 41 2.5 使用EJB3JPA持久化数据 42 2.5.1 使用JPA 43 2.5.2 使用EntityManager 45 2.6 小结 47 第二部分 使用EJB3构造业务逻辑 第3章 使用会话bean构造业务逻辑 50 3.1 会话bean简介 50 3.1.1 为什么使用会话bean 51 3.1.2 会话bean基础 52 3.1.3 了解程序设计原则 54 3.1.4 会话状态和会话bean类型 55 3.1.5 bean生命周期回调 55 3.2 无状态会话bean 57 3.2.1 BidManagerBean示例 58 3.2.2 使用@Stateless注解 60 3.2.3 指定业务接口 61 3.2.4 使用bean生命周期回调 63 3.3 有状态会话bean 65 3.3.1 附加程序设计原则 66 3.3.2 BidderAccountCreatorBean示例 66 3.3.3 有状态bean的业务接口 69 3.3.4 有状态bean的生命周期回调 70 3.4 会话bean客户端 72 3.4.1 使用@EJB注解 73 3.4.2 注入和有状态会话bean 74 3.5 有状态bean的性能注意事项 74 3.5.1 有效地使用有状态会话bean 74 3.5.2 有状态会话bean的替代方式 75 3.6 会话bean最佳实践 76 3.7 小结 76 第4章 消息和开发MDB 77 4.1 消息概念 77 4.1.1 面向消息的中间件 78 4.1.2 ActionBazaar中的消息 78 4.1.3 消息模型 80 4.2 Java消息服务简介 81 4.2.1 开发JMS消息生产者 82 4.2.2 JMS消息接口 83 4.3 使用消息驱动bean 85 4.3.1 为什么使用MDB 85 4.3.2 程序设计原则 86 4.3.3 使用MDB开发消息消费者 87 4.3.4 使用@MessageDriven注解 89 4.3.5 实现MessageListener 89 4.3.6 使用ActivationConfig-Property 90 4.3.7 使用bean生命周期回调 93 4.3.8 从MDB发送JMS消息 95 4.3.9 管理MDB事务 96 4.4 MDB最佳实践 96 4.5 小结 97 第5章 学习高级EJB概念 99 5.1 EJB内幕 99 5.1.1 幕后的EJB 99 5.1.2 EJB上下文:访问运行时环境 100 5.2 使用依赖注入和JNDI访问资源 103 5.2.1 使用@Resource注入资源 103 5.2.2 @Resource注解实际应用 107 5.2.3 查找资源和EJB 109 5.3 EJB中的AOP:拦截器 110 5.3.1 AOP是什么 111 5.3.2 拦截器是什么 111 5.3.3 指定拦截器 113 5.3.4 实现业务拦截器 114 5.3.5 拦截器类中的回调方法 117 5.4 调度:EJB3计时器服务 118 5.4.1 计时器是什么 118 5.4.2 使用计时器服务 119 5.4.3 何时使用EJB计时器 123 5.5 小结 124 第6章 事务和安全 125 6.1 了解事务 125 6.1.1 ActionBazaar中的事务解决方案 126 6.1.2 ACID属性 126 6.1.3 事务管理内幕 128 6.1.4 两阶段提交 129 6.1.5 EJB中的事务管理 130 6.2 容器管理的事务 130 6.2.1 使用CMT实现Snag-It订购 130 6.2.2 @TransactionManagement注解 131 6.2.3 @TransactionAttribute注解 132 6.2.4 使CMT使用回调 134 6.2.5 事务和异常处理 135 6.3 bean管理的事务 138 6.3.1 使用BMT实现Snag-It订购 138 6.3.2 获得UserTransaction 139 6.3.3 使用UserTransaction 140 6.3.4 BMT的优缺点 141 6.4 分析EJB安全 142 6.4.1 验证和授权 142 6.4.2 用户、组和角色 142 6.4.3 ActionBazaar中的安全问题 143 6.4.4 EJB3和JavaEE安全 144 6.4.5 声明式安全 146 6.4.6 使用EJB程序式安全 148 6.5 小结 150 第三部分 研究JPA 第7章 实现域模型 152 7.1 域建模和JPA 152 7.1.1 介绍域模型 153 7.1.2 ActionBazaar问题域 153 7.1.3 域模型参与者 155 7.1.4 EJB3Java持久化API 156 7.1.5 域对象作为Java类 157 7.2 使用JPA实现域对象 159 7.2.1 @Entity注解 159 7.2.2 持久化实体数据 160 7.2.3 指定实体身份 163 7.2.4 @Embeddable注解 167 7.3 实体关系 168 7.3.1 @OneToOne 168 7.3.2 @OneToMany和@ManyToOne 171 7.3.3 @ManyToMany 173 7.4 小结 175 第8章 对象关系映射 176 8.1 阻抗失配 176 8.1.1 把对象映射到数据库 177 8.1.2 介绍O/R映射 180 8.2 映射实体 181 8.2.1 指定表 183 8.2.2 映射列 184 8.2.3 使用@Enumerated 185 8.2.4 映射CLOB和BLOB 186 8.2.5 映射临时类型 186 8.2.6 把实体映射到多个表 187 8.2.7 生成主键 188 8.2.8 映射可嵌入类 190 8.3 映射实体关系 192 8.3.1 映射一对一关系 193 8.3.2 一对多和多对一 196 8.3.3 多对多 198 8.4 映射继承 200 8.4.1 单表策略 201 8.4.2 联结表策略 202 8.4.3 每个类一个表策略 204 8.4.4 映射多态关系 206 8.5 小结 206 第9章 使用EntityManager操作实体 207 9.1 介绍EntityManager 207 9.1.1 EntityManager接口 208 9.1.2 实体的生命周期 210 9.1.3 持久化上下文、作用域和EntityManager 212 9.1.4 在ActionBazaar中使用EntityManager 213 9.2 创建EntityManager实例 215 9.2.1 容器管理的EntityManager 215 9.2.2 应用程序管理的EntityManager 217 9.3 管理持久化操作 222 9.3.1 持久化实体 222 9.3.2 通过主键检索实体 226 9.3.3 更新实体 230 9.3.4 删除实体 232 9.3.5 通过转储清除控制更新 233 9.3.6 刷新实体 234 9.4 实体生命周期监听器 236 9.4.1 使用实体监听器 236 9.4.2 默认监听器类 238 9.4.3 监听器类的执行顺序和排除 238 9.5 实体操作最佳实践 239 9.6 小结 240 第10章 使用查询API和JPQL检索实体 241 10.1 介绍查询API 241 10.1.1 背景 241 10.1.2 剖析查询 242 10.1.3 定义命名查询 243 10.2 执行查询 244 10.2.1 创建查询实例 244 10.2.2 使用Query接口 246 10.2.3 指定查询提示 250 10.3 介绍JPQL 251 10.3.1 定义语句类型 251 10.3.2 使用FROM子句 253 10.3.3 条件表达式和操作 256 10.3.4 使用JPQL函数 259 10.3.5 使用SELECT子句 261 10.3.6 使用聚合 263 10.3.7 排序查询结果 264 10.3.8 使用子查询 265 10.3.9 联结实体 266 10.3.10 批更新和批删除 268 10.4 原生SQL查询 268 10.4.1 使用原生SQL的动态查询 269 10.4.2 使用命名原生SQL查询 270 10.5 小结 271 第四部分 EJB3的实际应用 第11章 打包EJB3应用程序 274 11.1 给应用程序打包 275 11.1.1 剖析EAR文件 276 11.1.2 加载EAR模块 277 11.2 分析类加载 279 11.2.1 类加载基础 279 11.2.2 分析典型的父委托模型 281 11.2.3 JavaEE应用程序中的类加载 282 11.2.4 JavaEE模块之间的相关性 282 11.3 打包会话bean和消息驱动bean 284 11.3.1 打包EJB-JAR 284 11.3.2 部署描述文件与注解 285 11.3.3 使用部署描述文件覆写注解 288 11.3.4 指定默认拦截器设置 289 11.3.5 使用厂商专有的注解和描述文件 289 11.4 打包实体 290 11.4.1 暴露持久化模块 291 11.4.2 使用persistence.xml描述持久化模块 291 11.4.3 使用orm.xml执行O/R映射 296 11.5 最佳实践和常见部署问题 299 11.5.1 打包和部署最佳实践 299 11.5.2 诊断常见部署问题 300 11.6 小结 301 第12章 有效地跨越应用程序层集成EJB3 12.1 设计模式和Web技术 302 12.1.1 表现层 303 12.1.2 使用EAO模式 305 12.1.3 介绍SessionFacade模式 308 12.2 从Web层访问会话bean 312 12.2.1 使用依赖注入访问会话bean 313 12.2.2 从帮助器类引用会话bean 314 12.2.3 处理事务 316 12.2.4 处理有状态会话bean 317 12.3 从Web层使用JPA 318 12.3.1 使用容器管理的实体管理器 318 12.3.2 通过JTA事务使用应用程序管理的EntityManager 320 12.3.3 在容器外访问应用程序管理的EntityManager 321 12.4 小结 323 第13章 驯服EJB:性能和可伸缩性 324 13.1 处理实体锁定问题 325 13.1.1 了解锁定类型 325 13.1.2 乐观锁定和实体版本 327 13.1.3 EntityManager和锁定模式 328 13.2 提高实体性能 330 13.2.1 重新建模和重新设计计划 330 13.2.2 优化JDBC层 333 13.2.3 减少数据库操作 334 13.2.4 提高查询性能 337 13.2.5 缓存 340 13.3 提高EJB3组件的性能 344 13.3.1 会话bean性能 344 13.3.2 提高MDB性能 346 13.4 集群EJB应用程序 347 13.4.1 协同定位架构 348 13.4.2 无状态会话bean的负载平衡 348 13.4.3 集群有状态会话bean 350 13.4.4 实体和集群缓存 352 13.5 小结 353 第五部分 移植和互操作性 第14章 移植到EJB3 356 14.1 与EJB2的向后兼容性和互操作性 356 14.1.1 将EJB2和EJB3打包在一起 357 14.1.2 从EJB3调用EJB2 357 14.1.3 从EJB2使用EJB3 358 14.2 移植会话bean 360 14.2.1 转换接口和bean类 360 14.2.2 资源使用 363 14.2.3 事务和安全设置 364 14.2.4 客户端应用程序 364 14.3 移植消息驱动bean 365 14.4 把CMP2实体移植到EJB3JPA 366 14.4.1 重新设计域模型 366 14.4.2 DTO用作实体 369 14.4.3 实体bean类和接口 370 14.4.4 客户端应用程序 376 14.5 移植JDBCDAO使用EJB3JPA 377 14.5.1 标识实体 378 14.5.2 重新构造DAO实现类使用EntityManagerAPI 379 14.5.3 SQL查询转换为JPQL 380 14.6 帮助O/R框架使用EJB3JPA 381 14.7 移植方法 382 14.7.1 策略 383 14.7.2 手工与自动 383 14.8 小结 383 第15章 把EJB暴露为Web服务 384 15.1 Web服务是什么 385 15.1.1 认识Web服务组件 386 15.1.2 Web服务样式 391 15.1.3 开发Web服务的方法 391 15.2 JAX-WS:JavaEE5Web服务平台 392 15.2.1 介绍Web服务平台 392 15.2.2 与POJO相比,为什么选择EJB用于Web服务 393 15.3 使用JAX-WS2.0开发EJBWeb服务 393 15.3.1 使用@WebService注解 395 15.3.2 使用@SOAPBinding指定Web服务样式 396 15.3.3 使用@WebMethod注解 397 15.3.4 使用@WebParam注解 399 15.3.5 使用@WebResult注解 400 15.3.6 使用@OneWay和@HandlerChain注解 400 15.4 从EJB访问Web服务 401 15.4.1 访问PlaceBidWeb服务 401 15.4.2 EJB作为Web服务客户 403 15.5 Web服务开发的最佳实践 404 15.6 小结 405 第16章 EJB3和Spring 406 16.1 Spring框架简介 407 16.1.1 Spring框架的优势 407 16.1.2 控制反转原理 408 16.1.3 关注分离原理 408 16.2 通过Spring使用JPA 409 16.2.1 构造Spring的JPAEAO 410 16.2.2 配置Spring使用JPA 412 16.3 结合EJB3和Spring的功能 415 16.3.1 开发支持Spring的EJB 415 16.3.2 从Springbean使用会话bean 417 16.4 小结 418 附录A RMI和JNDI 420 附录B 复习关系数据库 426 附录C 注解参考 431 附录D 部署描述文件参考 447 附录E 安装和配置JavaEE5SDK 462 资源 472 索引 475 …… |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。