`
bwwlpnn
  • 浏览: 6988 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

范例框架开发方法——快速高效地进行Java Web应用开发

阅读更多

进行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应用框架

分享到:
评论
1 楼 wuzhihui001 2012-07-17  
看你的文章,受教了。谢谢
现在也准备开始学习下appfuse 和springside 两个范例框架

相关推荐

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e...

    李兴华Java Web开发实战经典.pdf (高清版) Part1

    MLDN 李兴华 Java Web 开发实战经典.pdf (高清版) 全书分为两部分,需 要全部下载下载一起解压,此部分为第一部分 带有书签,清华大学出版社 第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 ...

    李兴华Java Web开发实战经典(高清版) Part2

    MLDN 李兴华 Java Web 开发实战经典.pdf (高清版) 全书分为两部分,需 要全部下载下载一起解压,此部分为第二部分 带有书签,清华大学出版社 第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 ...

    MLDN+李兴华+Java+Web开发实战经典.part3.rar )

    MLDN 李兴华 Java Web 开发实战经典.pdf (高清版) 带有书签,清华大学出版社 第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 上

    第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、服务器...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 下

    第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、服务器...

    李兴华 java_web开发实战经典 源码 完整版收集共享

    第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、服务器...

    李兴华 Java Web 开发实战经典 高清扫描版Part3

    第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、服务器...

    java web 视频、电子书、源码(李兴华老师出版)

    MLDN 李兴华 Java Web 开发实战经典.pdf (高清版) 第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发框架 1.6、本章摘要 1.7、...

    java源码包---java 源码 大量 实例

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    JAVA上百实例源码以及开源项目源代码

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    鉴于市场上用户的手机型号、种类、屏幕分辨率等参差不齐,传统方式根据主流系统分别开发相应的系统耗时又耗力,为了高效开发并节约开发项目成本,本文采用Android+HTML5相结合的方式进行移动端Web系统的设计研发工作...

    JAVA上百实例源码以及开源项目

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    java源码包4

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    java源码包3

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    java源码包2

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java...

    asp.net知识库

    动态调用对象的属性和方法——性能和灵活性兼备的方法 消除由try/catch语句带来的warning 微软的应试题完整版(附答案) 一个时间转换的问题,顺便谈谈搜索技巧 .net中的正则表达式使用高级技巧 (一) C#静态成员和...

Global site tag (gtag.js) - Google Analytics