编辑推荐
阅读本书,无需具备Java EE平台早期版本的知识,但你需要对Java有一些基本了解,以便理解代码。这本书的重要部分来自《Java EE 6 Pocket Guide》(O'Reilly出版)。添加的新章节覆盖了平台的新技术。添加的新内容或对现有部分的更新反映了平台的变化。
本书作者是Oracle公司的以为技术布道师,是Java EE团队的关键成员。本书将带给读者Java EE开发资讯。
译者韩陆现就职于阿里巴巴总部,从事敏捷和自动化测试的研发工作。《JSF和Richfaces使用指南》、《Java Restful Web Services使用指南》作者。
内容简介
Java EE 7是Java EE全新版本的平台,它为建立Web应用和企业应用提供了简单、易用和全栈式的服务。
《Java EE 7精粹》提供了Java EE 7平台中关键规范的概述。全书共16个章节,对Java EE 7平台中的每一个概念都给予了详细的解释,并通过一系列简单的代码示例来帮助读者更好地了解这个平台。作者Arun是Java EE团队的核心成员,也是Oracle的Java布道者,对Java EE 7平台的启动有重要贡献,是对Java EE 有发言权的技术专家。
《Java EE 7精粹》适合那些对Java有一些基本了解或者对Java EE 平台感兴趣的读者,阅读《Java EE 7精粹》需具备Java EE平台早期版本的知识。另外,对于了解设计模式的读者而言,通过《Java EE 7精粹》描述的大部分技术还能实现实际应用的构建。
作者简介
Arun Gupta,是甲骨文的Java布道者。作为Java EE团队的创始成员之一,他的工作是创建和培育Java EE、GlassFish和WebLogic社区。他带领一个跨职能的团队通过战略、规划和内容、营销活动和方案的执行推动Java EE 7平台的全球启动。他非常热衷于开发和接洽合作伙伴、客户、JUG、Java champions以及其他传播于世界各地的Java的精华。Arun拥有丰富的演讲经验,他在30多个国家演讲过数的话题。作为一名作者,Arun有一个多产的博客:blogs.oracle.com/arungupta,同时他是一位跑步爱好者和环球旅行者,请在twitter关注他:@arungupta,他很平易近人。
韩陆,北京航空航天大学软件工程硕士。热爱编程,热衷于开源社区的技术交流和分享,将持续学习作为一种生活习惯。曾混迹于用友总部、新浪、Avaya和Technicolor从事研发工作。现就职于阿里巴巴总部,从事敏捷和自动化测试的研发工作。《JSF和Richfaces使用指南》、《Java Restful Web Services使用指南》作者。
内页插图
精彩书评
本书带你追逐Java EE 7核心技术的最新进展,纵览Java EE最新版本将如何拥抱HTML5、专注于更高的生产力,并提供切合企业需求的功能。本书由Java EE团队核心成员Arun Gupta所著,为你揭示Java EE 7规范中的多个标准,包括的Web Socket、批处理、REST式的Web服务和Java消息服务。
同时,你将还可以得到一个自学指导,使用本书讲述的多种技术构建一个端到端的应用,这将有助于你理解对Java EE开发至关重要的设计模式。
?通过通俗的讲述和全面的代码示例,了解Java EE平台的核心组件;
?学习每个已添加到Java EE7平台的新组件,包括Web Socket,JSON,批处理和并发;
?了解REST式的Web服务、SOAP 基于XML的消息协议和Java消息服务;
?探索EJB、上下文和依赖注入,以及JPA;
?发现从Java EE 6到Java EE 7,不同的组件进行了怎样的更新。
目录
第1章 Java EE
1.1 简介
1.1.1 拥抱HTML5
1.1.2 更高的生产力
1.1.3 企业级需求
1.2 可交付成果
1.2.1 规范(Specification)
1.2.2 参考实现(RI)
1.2.3 技术兼容包(TCK)
1.2.4 Web技术
1.2.5 企业技术
1.2.6 平台1.1
1.2.7 Web服务技术
1.2.8 管理和安全技术
1.3 Java EE 7有什么新功能
1.3.1 新的规范
1.3.2 更新的规范
第2章 Servlets
2.1 WebServlet
2.2 Servlet过滤器
2.3 事件监听器
2.4 异步支持
2.5 非阻塞I/O
2.6 Web Fragment
2.7 安全
2.8 资源打包
2.9 错误映射
2.1 0 Handling Multipart Requests
2.1 1 Upgrade Processing
第3章 JSF
3.1 Facelets
3.2 资源处理
3.3 复合组件
3.4 请求处理生命周期阶段
3.4.1 恢复视图
3.4.2 接受请求值
3.4.3 处理验证
3.4.4 更新模型值
3.4.5 调用应用
3.4.6 渲染响应
3.5 Ajax
3.6 HTTP GET
3.7 服务器和客户端扩展点
3.7.1 转换器
3.7.2 校验器
3.7.3 监听器
3.7.4 行为
3.8 验证数据
3.9 导航规则
3.10 Faces Flow
3.11 资源库契约
3.12 Passthrough属性和HTML5友好的标记
3.13 组件标签
第4章 REST式的Web服务
4.1 资源
4.2 绑定HTTP方法
4.3 多种资源表述
4.4 绑定请求到资源
4.5 实体Provider
4.6 客户端API
4.7 映射异常
4.8 过滤器和实体拦截器
4.8.1 过滤器
4.8.2 实体拦截器
4.9 资源验证
第5章 基于SOAP的Web服务
5.1 Web服务端点
5.2 基于Provider的动态端点
5.3 基于端点的端点
5.4 Web服务客户端
5.5 基于Dispatch的动态客户端
5.6 Handler
第6章 JSON-P
6.1 流式API
6.1.1 使用流式API消费JSON
6.1.2 使用流式API生产JSON
6.2 对象模型API
6.2.1 使用对象模型API消费JSON
6.2.2 使用对象模型API生产JSON
第7章 WebSocket
7.1 注解式服务器端点
7.2 编程式服务器端点
7.3 注释式客户端端点
7.4 编程式客户端端点
7.5 JavaScriptWebSocket客户端
7.6 编码器和解码器
7.7 与Java EE安全集成
第8章 EJB
8.1 有状态会话Bean
8.2 状态会话Bean
8.3 单例会话Bean
8.4 生命周期事件回调
8.5 消息驱动Bean
8.6 可移植的全局JNDI名称
8.7 事务
8.8 异步调用
8.9 定时器
8.10 嵌入式API
8.11 EJB精简版
第9章 上下文和依赖注入
9.1 探测Bean
9.2 注入点
9.3 Qualifier和Alternative
9.4 生产者和处置者
9.5 拦截器
9.6 装饰器
9.7 作用域和上下文
9.8 构造型
9.9 事件
9.10 可移植的扩展
9.11 内置Bean
9.12 生命周期回调
第10章 并发工具包
10.1 异步任务
10.2 计划任务
10.3 托管线程
10.4 动态上下文对象
第11章 Bean验证
11.1 内置的约束
11.2 自定义的约束
11.3 验证组
11.4 方法和构造子约束
第12章 Java事务
12.1 用户管理的事务
12.2 容器管理事务
12.3 @TransactionScoped
第13章 Java持久化
13.1 实体
13.2 持久化单元、持久化上下文和实体管理器
13.3 生成Schema
13.4 创建、读取、更新和删除实体
13.5 实体监听器
13.6 存储过程
13.7 验证实体
13.8 事务和锁
13.9 缓存
第14章 消息服务
14.1 发送消息
14.2 同步接收消息
14.3 异步接收消息
14.4 服务的质量
14.5 临时Destination
第15章 批处理
15.1 面向块的处理
15.1.1 自定义检查点
15.1.2 异常处理
15.2 Batchlet处理
15.3 监听器
15.4 作业顺序
15.4.1 Flow
15.4.2 Split
15.4.3 Decision
15.5 作业分区
第16章 构建端到端的应用
16.1 介绍
16.2 问题陈述
16.3 示例走查
16.4 显示订票(JSF)
16.5 聊天室(WebSocket的Java API)
16.6 查看和删除影片(JAX-RS)
16.7 添加电影(JSON-P)
16.8 售票(Java平台的批处理应用)
16.9 电影点(Java消息服务2)
16.10 结论
16.11 故障排除
16.12 完整的解决方案
附录A 补充书目
前言/序言
《Java EE 7 精粹》 洞悉企业级 Java 开发的核心,掌握构建强大、可伸缩、高可用应用的利器。 在当今瞬息万变的软件开发领域,企业级应用的需求日益增长,对技术栈的深度和广度提出了更高的要求。Java Enterprise Edition(Java EE),作为一种开放、标准化的平台,凭借其健壮性、可伸缩性和跨平台能力,长期以来一直是构建大规模、高性能、安全可靠的企业级应用程序的首选技术。尤其是在 Web 应用、事务处理、消息传递、持久化等核心领域,Java EE 提供了丰富而强大的 API 和规范,为开发者提供了坚实的基础。 《Java EE 7 精粹》正是为满足这一需求而生,它旨在深入剖析 Java EE 7 平台的核心技术和关键特性,带领读者掌握构建现代企业级应用所需的关键知识和实践。本书并非泛泛而谈,而是专注于那些真正构成 Java EE 精髓、对实际开发至关重要的部分,帮助开发者在最短的时间内,以最有效的方式,获得最深入的理解。 本书的目标读者 本书适合以下人群: 希望系统学习 Java EE 技术的开发者: 无论是初次接触 Java EE,还是希望巩固和深化现有知识的开发者,本书都将为您提供一条清晰的学习路径。 需要构建企业级应用的团队: 项目经理、技术领导者可以通过本书了解 Java EE 7 的强大能力,为项目选型和技术决策提供依据。 对 Web 应用开发、分布式系统、事务管理等感兴趣的开发者: 本书深入探讨了这些领域的核心技术,是深入学习的宝贵资源。 已经熟悉 Java 基础,但希望转向企业级开发的开发者: 本书将帮助您平滑过渡,快速掌握企业级开发所需的特定技术栈。 本书的核心价值与特色 《Java EE 7 精粹》与市面上其他 Java EE 书籍最大的不同在于其“精粹”的定位。我们摒弃了冗余和不必要的细节,聚焦于最常用、最核心、最能体现 Java EE 强大之处的技术。通过精心设计的章节结构和详实的案例分析,本书将带您领略 Java EE 7 的核心魅力。 1. 聚焦核心技术,拒绝碎片化: Java EE 规范庞大且复杂,许多技术之间相互关联。本书打破了条块分割的教学模式,而是从应用场景出发,将相关的技术点有机地串联起来,帮助读者构建完整的知识体系。例如,在讲解 Web 层时,会自然而然地引出 Servlet、JSP、JSF 等技术,并阐述它们在处理 HTTP 请求、渲染用户界面方面的作用。 2. 深入剖析,理解“为什么”: 许多教程仅仅停留在“如何做”的层面,而本书更注重“为什么”的解释。我们会深入分析各项技术的设计理念、工作原理和最佳实践,让读者不仅知道如何使用,更理解其背后的逻辑,从而能够根据实际情况灵活运用,甚至优化。例如,在讲解 JPA 时,会深入探讨其对象-关系映射的原理,以及不同映射策略的优劣。 3. 实践驱动,案例丰富: 理论知识的学习离不开实践的检验。《Java EE 7 精粹》提供了大量的代码示例,这些示例都是经过精心设计和验证的,覆盖了各种常见的应用场景。读者可以通过运行和修改这些代码,直观地理解各项技术的实际应用效果,并从中学习到宝贵的编码经验。 4. 循序渐进,由浅入深: 本书遵循由简到繁、由易到难的学习规律,从最基础的 Java EE 概念和架构入手,逐步深入到各项具体技术。即使是初学者,也能在本书的引导下,逐步建立起对 Java EE 的全面认识。 5. 紧扣 Java EE 7 标准: 本书完全基于 Java EE 7 规范进行编写,确保内容的时效性和准确性。对于 Java EE 7 中引入的新特性和改进,我们会进行详细的介绍和阐述,帮助读者掌握最新的企业级 Java 开发技术。 本书内容概览(以下为本书可能包含的 核心 章节主题,具体章节顺序和命名可能略有调整,但内容方向一致): 第一部分:Java EE 平台概览与基础 Java EE 平台架构与模型: 介绍 Java EE 平台的整体架构,包括容器、组件模型、API 等,为后续学习打下坚实基础。理解 Java EE 如何实现其跨平台、可伸缩和高可用的特性。 Servlet API 深入解析: 作为 Java Web 应用的基础,Servlet 在处理 HTTP 请求、生成动态响应等方面起着至关重要的作用。本章将深入讲解 Servlet 的生命周期、请求/响应处理、Filter 和 Listener 等核心概念,并结合实际案例展示如何使用 Servlet 构建 Web 应用。 JSP(JavaServer Pages)与 EL(Expression Language): JSP 作为一种方便的视图技术,允许开发者在 HTML 中嵌入 Java 代码,实现动态页面生成。本书将深入讲解 JSP 的语法、指令、动作标签,以及 EL 在简化页面数据访问方面的应用,帮助读者掌握高效的视图层开发。 WebSockets: 了解如何在 Java EE 7 中实现实时双向通信,构建富交互的 Web 应用,例如在线聊天、实时数据推送等。 JAX-RS(RESTful Web Services): 随着 RESTful 架构的普及,掌握 JAX-RS 是构建现代 Web 服务不可或缺的一部分。本书将详细介绍 JAX-RS 的核心注解、请求/响应处理、资源类、媒体类型等,并演示如何构建和消费 RESTful 服务。 第二部分:持久化与数据访问 JPA(Java Persistence API)核心概念: 深入讲解 JPA 作为 Java EE 平台标准的对象-关系持久化解决方案。理解实体(Entity)、持久化上下文(Persistence Context)、实体管理器(EntityManager)等核心概念,以及如何进行实体映射、查询和事务管理。 JPA 进阶主题: 探索 JPA 的高级特性,例如关联映射(OneToOne, OneToMany, ManyToOne, ManyToMany)、继承映射、批量操作、缓存机制等,帮助读者更高效地进行数据持久化。 JDBC(Java Database Connectivity)基础回顾与实践: 虽然 JPA 是主流,但了解 JDBC 基础仍然重要。本书将简要回顾 JDBC 的核心 API,并展示如何将其与 JPA 结合使用,或者在特定场景下直接使用 JDBC 进行更底层的数据库操作。 第三部分:事务管理与消息传递 Java EE 事务管理: 理解 Java EE 平台提供的声明式事务管理(通过注解和 XML 配置)和编程式事务管理,确保数据的一致性和完整性。重点讲解事务的隔离级别、传播行为以及 ACID 特性。 JTA(Java Transaction API): 深入了解 JTA 如何支持分布式事务,确保跨多个资源(如数据库、消息队列)的操作原子性。 JMS(Java Message Service): 学习 JMS API,掌握异步消息传递的关键技术。理解点对点(Queue)和发布/订阅(Topic)两种消息模型,以及如何发送、接收和处理消息,构建解耦、高可用的分布式系统。 第四部分:安全与企业级特性 Java EE 安全模型: 介绍 Java EE 平台提供的安全机制,包括认证(Authentication)、授权(Authorization)、身份验证(Principal)、安全域(Security Domain)等。 JAAS(Java Authentication and Authorization Service): 了解 JAAS 如何为应用程序提供灵活的认证和授权服务。 Bean Validation: 学习如何使用 Bean Validation API 对 Java 对象进行数据校验,确保输入数据的合法性,减少开发中的错误。 CDI(Contexts and Dependency Injection): 深入理解 CDI 作为 Java EE 平台的依赖注入和上下文管理解决方案。掌握 Bean、Scope、Injection、Producer 等核心概念,以及如何利用 CDI 构建可维护、可扩展的应用。 第五部分:实践与部署 常用 Java EE 应用服务器介绍与配置: 简要介绍常见的 Java EE 应用服务器(如 WildFly/JBoss EAP, GlassFish, WebSphere),并指导读者如何进行基本的配置和部署。 Maven/Gradle 在 Java EE 项目中的应用: 学习如何使用 Maven 或 Gradle 来管理项目依赖、构建、测试和打包,提高开发效率。 Web 服务(SOAP)简介(可选): 根据本书的“精粹”定位,可能会简要介绍 SOAP Web 服务,并与 RESTful Web 服务进行对比,以便读者在有需要时能够理解。 学习本书,您将能够: 清晰地理解 Java EE 7 平台的架构和核心组件。 熟练运用 Servlet、JSP、JSF 构建强大的 Web 应用。 掌握 JAX-RS,设计和实现高效的 RESTful 服务。 深入理解 JPA,实现高效、灵活的数据持久化。 灵活运用事务管理和消息传递技术,构建健壮的分布式系统。 掌握 Java EE 安全模型,确保应用的安全性。 利用 CDI 构建高内聚、低耦合的组件化应用。 掌握 Maven/Gradle 等工具,提高开发效率。 具备独立开发和部署 Java EE 应用的能力。 《Java EE 7 精粹》不仅仅是一本技术书籍,它更是一种对企业级 Java 开发思想的提炼和升华。通过本书,您将真正掌握构建高质量、高性能、可维护的企业级 Java 应用的核心技术和最佳实践,为您的职业生涯增添强大的竞争力。让我们一起开启这段深入探究 Java EE 7 精髓的旅程吧!