Skip to content

1. 简介

本文档的PDF版本可在此处获取 |HERE|。

文档中的示例可在此处查看 |HERE|。

本文档基于 2010 年编写的一份名为《使用 NetBeans 6.8 和 GlassFish v3 服务器入门 Java EE》的旧文档。本版本主要包含以下更改:

  • JSF(Java Server Faces)部分已另行整理为独立文档:《Java Server Faces、PrimeFaces 及 PrimeFaces Mobile 入门》,可访问 [https://stahe.github.io/zh-jsf2-pf-pfm-juin-2012/]。该文档采用 JSF 2.0 版本的功能,
  • 项目均为 Maven 项目。

Java EEJava 企业版(Java Enterprise Edition)的缩写。J2EEJava 2 企业版)是其前身。J2EE 指使用 JDK 1.4 或更早版本创建企业应用程序所采用的 Java 技术。 随着 JDK 1.5 为 Java 语言引入了大量新特性,Sun 基于这一增强的语言推出了新技术,以解决 J2EE 中相关技术的不足。此后,“Java EE 5”一词被用来指代这套协同工作、用于基于 Java 平台构建企业应用程序的技术集合。截至本文档更新之时,Java EE 的最新版本是 Java EE 6。

安东尼奥·贡萨尔维斯(Antonio Goncalves)的著作:

  • 《Java EE 5》,Eyrolles出版社
  • 《Glassfish 3 入门:Java EE 6 平台》,Apress 出版

是了解 Java EE 5 和 Java EE 6 技术的绝佳读物。书中通过真实的案例研究,全面介绍了所有重要的 Java EE 技术。作者拥有个人网站 [http://www.antoniogoncalves.org],欢迎读者访问。

本文将探讨Java EE 5中的部分技术。我们将构建一个基础的三层应用程序[展示层、业务逻辑层、数据访问层],该应用程序提供多个版本:

一个采用以下技术的 Web 应用程序:

  • Java Server Faces:用于 Web 层
  • EJB3Spring:用于业务层
  • EJB3Spring、JPA/Hibernate、JPA/EclipseLink:用于构建不同的数据访问层

一个采用以下技术的客户端/服务器应用程序:

  • Swing:用于客户端GUI层,并支持Spring
  • EJB3Web 服务:用于服务器层

本文未涉及某些 Java EE 技术,例如 MDB(消息驱动 Bean)或有状态的 EJB3。如需进一步了解这些内容,请参阅安东尼奥·贡萨尔维斯(Antonio Goncalves)的著作。

还有其他可用于构建三层应用程序的开源技术。其中一种非常流行的组合是 Spring(http://www.springframework.org/)与 Hibernate(http://www.hibernate.org/)。为了方便读者比较 EJB3Spring 技术,前文的应用程序提供了用 Spring 替代 EJB3 的版本。

本文档是昂热大学(University of Angers)[http://www.istia.univ-angers.fr] ISTIA 工程学院五年级使用的教学指南(TD)。本指南描述了待构建的应用程序、将使用的 Java 技术以及信息来源。所提出的解决方案通常结构非常严谨。作业提出问题但不提供答案,由学生自行寻找答案。

本文概述的Java EE学习过程预计需要投入50至100小时。文档包含大量代码,便于直接复制粘贴。此外,所有NetBeans项目均有详细说明。 总体而言,本文档提供了解决方案的框架,并要求学生填补某些细节。即使对于无法或不愿投入如此多时间的人,本文档依然具有参考价值。读者可以仅关注所述架构,跳过作为问题主体的代码部分。

开发和运行应用程序时,我们使用 NetBeans IDE。NetBeans 是一款资源消耗较大的应用程序:建议预留 1 GB 内存以确保流畅运行。可从以下网址下载:[http://www.netbeans.org/]

本文档涉及以下课程:

  1. Java 5 持久化实践:[https://stahe.github.io/zh-jpa-juin-2007/] - 提供使用 JPA(Java 持久化 API)构建数据访问层的工具
  1. 《Java 语言入门》[https://stahe.github.io/zh-java-sept-1998/] - 面向初学者
  2. 通过实例学习 Java Server Faces、PrimeFaces 和 PrimeFaces Mobile [https://stahe.github.io/zh-jsf2-pf-pfm-juin-2012/]

这些课程资料后续将分别作为 [ref1]、[ref2] 和 [ref3] 引用。

Serge Tahé,2012年6月。