最重要的Java EE最佳实践

引言

在过去的几乎整整十年中,人们编写了很多有关 Java Platform, Enterprise Edition (Java EE) 最佳实践的内容。现在有十多本书籍 和数以百计(可能更多)的文章,提供了关于应该如何编写 Java EE 应用程序的 见解。事实上,这方面的参考资料如此之多,并且这些参考资料之间往往还存在 着一些矛盾的建议,以至于在这些混杂的内容中进行学习本身也成为了采用 Java EE 的障碍。因此,为了给刚进入这个领域的客户提供一些简单的指导,我们汇编 了这个最重要的最佳实践列表,其中包括我们认为最重要和最有效的 Java EE 最 佳实践。遗憾的是,我们无法仅在 10 大最佳实践中描述所有需要介绍的内容。 因此,为了避免遗漏关键的最佳实践和尊重 Java EE 的发展,我们的列表中包含 了“19 大”关键的 Java EE 最佳实践。

1. 始终使用 MVC 框 架。

将业务逻辑(Java Bean 和 EJB 组件)从控制器逻辑 (Servlet/Struts 操作)和表示逻辑(JSP、XML/XSLT)中清晰地分离出来。良 好的分层可以带来许多好处。

这项实践非常重要,以致没有其他最佳实践 可以与其相提并论。对于良好的 Java EE 应用程序设计而言,模型-视图-控制器 (MVC) 是至关重要的。它将程序的任务简单地分为下面几个部分:

负责业 务逻辑的部分(模型,通常使用 Enterprise JavaBeans 或传统 Java 对 象来实现)。

负责用户接口表示的部分(视图)。

负责应用程序 导航的部分(控制器,通常使用 Java Servlet 或类 Struts 控制器这样相关的 类来实现)。

对于 Java EE,有许多关于这个主题的优秀评论,我们特别 推荐感兴趣的读者可以参考 [Fowler] 或者 [Brown](请参见参考资料部分)的 评论,以便全面和深入地了解相关内容。

如果不遵循基本的 MVC 体系结 构,在开发过程中就会出现许多的问题。最常见的问题是,将过多的任务放到该 体系结构的视图部分中。可能存在使用 JSP 标记来执行数据库访问,或者在 JSP 中进行应用程序的流程控制,这在小规模的应用程序中是比较常见的,但是,随 着后期的开发,这样做将会带来问题,因为 JSP 逐步变得越来越难以维护和调试 。

类似地,我们也经常看到将视图层构建到业务逻辑的情况。例如,一个 常见的问题就是将在构建视图时使用的 XML 解析技术直接应用到业务层。业务层 应该对业务对象进行操作,而不是对与视图相关的特定数据表示进行操作。

然而,仅仅使用适当的组件无法实现应用程序的正确分层。我们常常见到 一些应用程序包含 Servlet、JSP 和 EJB 组件所有这三项,然而,其主要的业务 逻辑却是在 Servlet 层实现的,或者应用程序导航是在 JSP 中处理的。您必须 对代码进行严格的检查和重构,以确保仅在模型层中处理业务逻辑,在控制器层 中进行应用程序导航,而视图应该只关心如何将模型对象呈现为合适的 HTML 和 Javascript。

本文中这项建议的涵义应该比原始版本中的更加清 楚。用户接口技术不断地发生着变化,将业务逻辑关联于用户接口,会使得对接 口的更改影响到现有的系统。几年之前,Web 应用程序用户接口开发人员可能从 Servlet 和 JSP、Struts 和 XML/XSL 转换中进行选择。在那以后,Tiles 和 Faces 非常流行,而现在,AJAX 大行其道。如果每当首选的用户接口技术发生了 更改就要重新开发应用程序的核心业务逻辑,那么就糟透了。

时间: 2024-09-09 02:03:30

最重要的Java EE最佳实践的相关文章

Java 的最佳实践

Java 是在世界各地最流行的编程语言之一, 但是看起来没人喜欢使用它.而 Java 事实上还算是一门不错的语言,随着 Java 8 最近的问世,我决定编制一个库,实践和工具的清单,汇集 Java 的一些最佳实践. 本文被放到了 Github 上.你可以随意地提交贡献,并加入自己的有关 Java 方面的建议和最佳实践. 风格 Javadoc 构建器模式 结构 依赖注入 避免空值 默认不可变更 避免大量的工具类 格式化 流 发布 依赖收敛 框架 Maven 持续集成 Maven 资源库 配置管理

Android异常处理最佳实践_Android

一个好的app 异常处理机制 我认为应该至少包含以下几个功能: 1.能把错误信息上传到服务器  让开发者可以持续改进app 2.错误信息至少应该包含 是否在主进程 是否在主线程 等可以帮助程序员定位的信息 3.最好包含手机硬件及软件信息. 4.主进程引发的异常 最好交由系统自己处理 也就是让用户可以感知到 那种(当然你也可以自己定义一套更有意思的感知系统对话框等,具体可参考各种有意思的404界面) 5.子进程引发的异常最好别让用户感知到.比如push之类的 这种 和用户感知弱关联的这种.最好发生

将Flex集成到Java EE应用程序的最佳实践

简介:传统的 Java EE 应用程序通常使用某种 MVC 框架(例如,Struts)作为前端用户界面,随着 Flex 的兴起,基于 RIA 的客户端能够给用户带来更酷的界面,更短的响应时间,以及更接近于桌面应 用程序的体验.本文将讲述如何将 Flex 集成至一个现有的 Java EE 应用程序中,以及如何应用最佳实 践高效率地并行开发 Java EE 和 Flex. 开发环境 本文的开发环境为 Windows 7 Ultimate,Eclipse 3.4,Flex Builder 3.Java

避免Java应用中NullPointerException的技巧和最佳实践

Java应用中抛出的空指针异常是解决空指针的最好方式,也是写出能顺利工作的健壮程序的关键.俗话说"预防胜于治疗",对于这么令人讨厌的空指针异常,这句话也是成立的.值得庆幸的是运用一些防御性的编码技巧,跟踪应用中多个部分之间的联系,你可以将Java中的空指针异常控制在一个很好的水平上.顺便说一句,这是Javarevisited上的第二个空指针异常的帖子.在上个帖子中我们讨论了Java中导致空指针异常的常见原因,而在本教程中我们将会学习一些Java的编程技巧和最佳实践.这些技巧可以帮助你避

Java中关于异常处理的10个最佳实践

Java 编程中异常处理的最佳实践 这里是我收集的10个Java编程中进行异常处理的10最佳实践.在Java编程中对于检查异常有褒有贬,强制处理异常是一门语言的功能.在本文中,我们将尽量减少使用检查型异常,同时学会在Java编程中使用检查型VS非检查型异常. 1.为可恢复的错误使用检查型异常,为编程错误使用非检查型错误 选择检查型还是非检查型异常,对于Java编程人员来说,总是让人感到困惑.检查型异常保证你对错误条件提供异常处理代码,这是一种从语言到强制你编写健壮的代码的一种方式,但同时会引入大

【译】11条Java异常处理的最佳实践

本文翻译自Top 11 Java Exception Best Practices 在之前关于Java异常的文章中,已经探讨过suppressed exceptions和Java Exceptions Tutorial两个方面的内容.要想在实际项目中正确处理Java异常,你应该熟练掌握一些Java异常处理的最佳实践. Java 异常处理的最佳实践 不要 在catch语句块中压制异常 public class ExceptionExample { public FileInputStream te

深入理解Java虚拟机:JVM高级特性与最佳实践

目 录 [ - ] <深入理解Java虚拟机:JVM高级特性与最佳实践>前言 <深入理解Java虚拟机:JVM高级特性与最佳实践>内容特色 <深入理解Java虚拟机:JVM高级特性与最佳实践>目录 第1章 走近Java 1.1 概述 1.2 Java技术体系 1.3 Java发展史 1.4 展望Java技术的未来 1.4.1 模块化 1.4.2 混合语言 1.4.3 多核并行 1.4.4 进一步丰富语法 1.4.5 64位虚拟机 1.5 实战:自己编译JDK 1.5.1

Java程序优化的一些最佳实践

摘要:本文介绍了Java代码优化的过程,总结了优化Java程序的一些最佳实践,分析了进行优化的方法并解释了性能提升的原因.多角度分析导致性能低的原因并逐个进行优化使得程序性能得到极大提升,代码可读性.可扩展性更强. 作者通过经历的一个项目实例,介绍Java代码优化的过程,总结了优化Java程序的一些最佳实践,分析了进行优化的方法,并解释了性能提升的原因.作者从多个角度分析导致性能低的原因,并逐个进行优化,最终使得程序的性能得到极大提升,增强了代码的可读性.可扩展性. 一.衡量程序的标准衡量一个程

介绍在Java程序中记录日志的最佳实践

本文介绍了在Java程序中记录日志的最佳实践,同时也介绍了如何使用开源软件对日志进行聚合和分析.对于现在的应用程序来说,日志的重要性是不言而喻的.很难想象没有任何日志记录功能的应用程序运行在生产环境中.日志所能提供的功能是多种多样的,包括记录程序运行时产生的错误信息.状态信息.调试信息和执行http://www.aliyun.com/zixun/aggregation/18195.html">时间信息等.在生产环境中,日志是 查找问题来源的重要依据.应用程序运行时的产生的各种信息,都应该通