进行Java Web应用软件开发,一般可以采用3种方式。
第一种是“自力更生”,从零开始,包括软件系统架构和底层工具一切都靠自己来实现。
第二种是“洋务运动”的“工具框架”开发方法,即自己设计软件系统架构,但是同时选用一些底层工具类的“工具框架”来配合自己搭建的架构进行开发。这类“工具框架”的典型代表有Struts 2, Hibernate 3等等。
第三种是“拿来主义”的“范例框架”开发方法,即自己不再独立设计系统架构和底层工具,而是选择一个已经将系统架构和底层工具类库等子框架都整合好,并提供范例模块的成熟的“范例框架”,直接参考范例框架上的范例模块,并使用范例框架整合好的底层工具类库等子框架,进行定制化开发自己的项目。这类“范例框架”包括AppFuse, Spring Roo, Spring Side, Play, Seam等。
实践证明,第三种“范例框架”开发方法,是最快速高效的。因为这将大大缩短软件开发的“起步”过程,提高敏捷软件开发的首次迭代的质量,并让今后的开发工作能建立在一系列前人已经摸索出来的“最佳实践”的基础之上。
要使用“范例框架”开发方法,有必要回顾一下Java Web应用的开发框架。在Java Web应用开发领域,软件开发框架十分丰富。如果把Java Web应用开发的架构按照软件系统的三层模型来分层,可以分为表示层、业务层和数据层这3层。表示层负责显示应用的结果,业务层负责处理业务逻辑,数据层负责存取数据库。每一层都有相应的软件开发框架。
2000年3月,Apache Struts开源项目开始启动。Struts是运用MVC Model 2较早并且为大多数Java Web开发人员所熟悉的Java Web应用开发框架。
其他运用MVC Model 2模式的开源项目也相继发展起来,比如另一个开源项目OpenSymphony,于2002年推出了比Struts技术更先进的名为Webwork的Java Web应用开发框架。
2008年,上述两个开源项目Struts和Webwork进行了合并,推出了一个名为Struts 2的新框架。Struts 2框架实现了上述“三层模型”的表示层和业务层的一些功能,不妨把这类框架称为Web应用框架。由于Struts推出时间早,Struts 2框架是目前国内外Web应用框架中名气最大的。其他常用的通用Web应用框架还包括Apache Tapestry和JavaServer Faces。
Java是面向对象的语言,在进行Java Web应用开发,存储数据到数据库(即持久化persistence)时,免不了要在数据层进行对象-关系映射(Object-relational mapping, ORM)。一些框架完成了上述基于ORM的持久化工作,其中最有名的是Hibernate。这类框架可以称为ORM持久化框架。其他常用的ORM持久化框架还包括:iBATIS和Java Persistence API (JPA)。
一些通用开发框架也相继推出,如2003年发布的Spring Framework。Spring Framework的兴起缘于Sun公司的EJB 1.1至2.1的设计缺乏灵活性,不便于测试而广受批评这样的背景之下。Spring Framework最大的优势,是实现了依赖注入(Dependency Injection,DI)和面向方面的编程(Aspect-oriented programming, AOP)。DI使得对象的实例化不再由程序控制,而是由Spring Framework容器来控制,这样会使得模块之间的耦合度降低,更加容易测试。AOP能够把一些模块所共有的通用功能(如日志、安全、事务)抽象出来集中处理,这能减少开发人员的工作强度,让他们能更加关注业务逻辑,而不是上述通用功能。
由于上述框架数量繁多,要把它们有机地整合起来,在一个项目中充分发挥它们应有的作用,也是一件复杂的事情。一些开源框架就开始做框架整合的工作,整合工作除了把表示层、业务层和数据层的框架组合起来之外,一般还提供若干项目骨架(project skeleton)或范例(archetype),内含如用户管理、权限管理这样的通用功能、一些范例模块和代码自动生成工具。这类框架可以称之为范例框架(Archetype Framework)。范例框架中发展较早的是AppFuse,于2003年推出了1.0版本。最近发展起来的范例框架是Spring Roo,于2009年推出了1.0版本。国内常用的范例框架还包括中国工程师自己创建的Spring Side。其他常用范例框架还包括:JBoss Seam和Play Framework。
下表列出了上述Java Web开发框架的相关信息。
软件开发框架 初始版本时间/版本号 最近版本时间/版本号 框架类型
==================================================================================
Spring Framework 2003.06 2010.10.29/3.0.5 通用开发框架
Play Framework 2008.02 2011.04.13/1.2 范例框架
AppFuse 2003.11.30/1.0 2011.04.04/2.1 范例框架
Spring Roo 2009.12/1.0.0.RELEASE 2011.04.13/1.1.3.RELEASE 范例框架
Spring Side 2006.08.07/1.0 2010.09.15/3.3.4 范例框架
Jboss Seam 2005.09 2011.03.31/3.0.0.Final 范例框架
Hibernate 2001 2011.04.06/3.6.3.Final ORM持久化框架
iBATIS 2002 2010.12.31/3.0.4 ORM持久化框架
JPA 2006.05.11/1.0 2009.12.10/2.0 ORM持久化框架
Struts 2000.05 2010.12.20/2.2.1.1 Web应用框架
JSF 2004.03.11/1.0 2009.06.28/2.0 Web应用框架
Apache Tapestry 2000.01 2011.03.30/5.2.5 Web应用框架
分享到:
相关推荐
MLDN 李兴华 Java Web 开发实战经典.pdf (高清版) 全书分为两部分,需 要全部下载下载一起解压,此部分为第二部分 带有书签,清华大学出版社 第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 ...
全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e...
第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、服务器...
MLDN 李兴华 Java Web 开发实战经典.pdf (高清版) 全书分为两部分,需 要全部下载下载一起解压,此部分为第一部分 带有书签,清华大学出版社 第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 ...
第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、服务器...
MLDN 李兴华 Java Web 开发实战经典.pdf (高清版) 带有书签,清华大学出版社 第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发...
这篇名为“第十一个范例——Button家族”的博文深入探讨了按钮组件的各种类型及其在不同场景下的应用。博主lwj9922在iteye博客上分享了关于按钮设计和实现的详细知识,这对于我们理解UI设计和编程实践具有重要意义。...
这将对提升JavaWeb开发技能,尤其是对于需要快速构建高效、可扩展的Web应用的开发者来说,具有极大的价值。 总的来说,这个压缩包为读者提供了一个实践Structs框架的平台,通过分析和运行源代码,读者可以加深对MVC...
【标题】"第九个范例——布局之StackContainer"指的是在软件开发中,特别是图形用户界面(GUI)设计中的一种布局管理方式。StackContainer是一种布局容器,它将多个组件按照栈的方式进行排列,通常用于展示有限数量...
第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、服务器...
【描述】提及的博客文章可能深入解析了LayoutContainer的概念和用法,这通常涉及到编程语言中的特定库或框架,例如Java的Swing或JavaFX,或者在Web开发中如HTML和CSS的布局方式。作者"lwj9922"在ITEYE博客上分享了...
标题中的“第六个范例——布局之ContentPane”指的是一个编程示例,可能是一个教程或案例研究,关注于软件用户界面(UI)设计中的容器管理器——ContentPane。在Java Swing或JavaFX等图形用户界面(GUI)框架中,...
第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、服务器...
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...
在Web开发中,留言管理系统是一个常见的功能模块,它允许用户在网站上留下评论或反馈。本范例主要介绍如何使用Java Server Pages(JSP)技术和Data Access Object(DAO)模式来实现这样一个系统。JSP主要用于表现层...
这三种技术的整合为开发者提供了强大的企业级应用开发框架,实现了MVC(Model-View-Controller)设计模式。在本示例中,我们将探讨如何在MyEclipse环境中将这些技术整合起来,实现一个简单的登录功能。 【MyEclipse...
Java编程是IT领域中最受欢迎的语言之一,尤其适合初学者入门...同时,还可以学习Java的框架如Spring、MyBatis等,以及Java在Web开发、大数据处理、Android应用开发等多个领域的应用。祝你在Java编程的道路上一帆风顺!