JAVA软件开发使用的框架有哪些?

Python019

JAVA软件开发使用的框架有哪些?,第1张

JAVA软件开发开发框架多达几十种,瑭锦Tanjurd总结列举了3种最常见也是最常用方便的3种工具:\x0d\x0a1、Struts:Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的\x0d\x0a2、Spring:Spring是轻量级的J2EE应用程序框架。\x0d\x0a3、Hibernate:Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了轻量级的对象封装,使得Java程序员可以使用对象编程思维来操纵数据库。Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化。它还可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用

在本文中 我将集中讨论现代的Java开发框架 分析它们的特征和各自的使用优点 另外 我还想比较目前流行的生产质量框架 例如Struts Spring和Hibernate 并详细讨论其基本相似性及有关基本概念

我将简短分析被用于支持这些框架的企业开发环境或工具箱 例如Borland JBuilder Eclipse以及BEA Workbench 请记住 市场上有许多有关这些开发框架的图书然而 在任何一篇文章中 要对它们进行深入描述是不可能的 不过 我将尽力讨论最广泛地使用的概念

共同点

几乎所有现代的网络开发框架都遵循了模型 视图 控制(MVC)设计模式 商业逻辑和描述被分开 由一个逻辑流控制器来协调来自客户端的请求和服务器上将采取的行动 这条途径成为了网络开发的事实上的标准 每个框架的内在的机制当然是不同的 但是开发者们使用来设计和实现他们的Web应用软件的API是很类似的 差别还存在于每个框架提供的扩展方面 例如标签库 JavaServer Faces或JavaBean包装器等

所有的框架使用不同的技术来协调在Web应用程序之内的导航 例如XML配制文件 java属性文件或定制属性 所有的框架在控制器模块实现的方法方面也存在明显的不同 例如 EJB可能实例化在每个请求中需要的类或使用Java反射动态地调用一个适当的行动(Action)类 另外 不同框架在各自引入的概念上也有所不同 例如 一个框架可能定义用户请求和反应(以及错误)场所 而另外一个框架可能仅仅定义一个完整的流 从一个请求到多个响答和随后的再请求……

各种Java框架在它们组织数据流的方法方面是很类似的 在请求发出后 在应用程序服务器上产生一些行动而作为响应 一些可能包含对象集的数据总是被发送到JSP层 然后 从那些对象 可能是有setter和getter方法的简单类 javabeans 值对象 或者一些集合对象 中提取数据 现代的Java框架还想方设法简化开发者的开发任务 如通过使用简易的API 数据库连接池 甚至数据库调用包等提供自动化的追踪方式来实现 一些框架或者能够钩进(hooked into)另外的J EE技术中 例如JMS(Java消息服务)或JMX 或把这些技术集成到一起 服务器数据持续性和日志也有可能成为框架的一部分

企业开发环境

一些框架在Web开发者社区和企业发展领域变得相当流行 随着这些框架的日渐成熟并开始发行稳定的版本 商业的IDE(集成发展环境)开始为这些框架提供支持并把他们纳入到自己的产品中 一些IDE甚至基于框架的概念开发出整个的产品 例如 BEA WebLogic Workshop就是基于Struts框架建立起来的

Borland Jbuilder为Struts提供了内建的支持 也支持JSF和JSTL

Eclipse平台已成为一个很流行的开发工具 部分因为它是基于插件的 部分因为它对于Web框架的支持 现在 出现了众多的Eclipse插件 甚至完整的基于Eclipse的IDE 许多插件被设计适合于Struts框架开发 例如MyEclipse()或M

大多数IDE都具有图形化的流程和可视化对象(类代理) 例如 下面是一个JBuilder的行动(Action)设计器 用于规划Web应用程序的页面顺序

WebLogic Workshop引入Java页面流程技术 它扩展了Struts框架而提供了一个简化的开发模型并增加了另外一些特性 Workshop使用页面流(Page Flows) 实现轻易地把用户接口与导航和商业逻辑分离开来 页面流由JSP页组成 这些页面包含用户接口元素和一个控制器文件(JPF) 它包含由用户提供的数据将怎样被处理的指令以及下一步什么页面将被返回到用户的信息 页面流动提供给开发者一个可视化的Web应用程序总体轮廓 它让开发者能够看到直观地分析不同的JSP页彼此相关联 并实现Web应用程序整体结构的快速建立

MyEclipse提供类似的特征 并带有更多吸引人的代价标签

Apache Struts框架

Struts框架是一开源产品 基于模型 视图 控制器(MVC)设计范例来开发Web应用软件 它使用并且扩展了Java Servlet API 最初由Craig McClanahan创建 在 年 月 它被捐赠到Apache Foundation Struts框架展示了一个强有力的定制标签库 平铺显示 表单检验和I N(国际化) 另外 Struts支持许多描述层 包括JSP XML/XSLT JavaServerFaces(JSF)和Velocity还支持一些模型层 包括JavaBeans和EJB

Spring框架

Spring框架是一个分层的Java/J EE应用程序框架 基于Expert One on One J EE设计和发行的代码 Spring框架提供一种简单的开发技术 用于自动化处理工程中大量的属性文件和助理类

Spring框架包括的主要特色有:

  强有力的基于JavaBeans的配置管理 使用Inversion of Control(IoC)原则   一个核心bean工厂 可用在任何环境 从applets到J EE容器程序   通用的抽象层适合于数据库事务管理 允许可插入的事务管理器 并且不需要处理低层次的问题就可容易地划分各事务的界限   一个很有意义的异常处理的JDBC抽象层   与Hibernate集成到一起 DAO实现支持以及事务策略

Hibernate框架

Hibernate是一适合于Java语言的对象 关系映射(ORM)解决方案 它也是开源软件 类似Struts 并且在LGPL保护下发布 Hibernate被一群来自世界各地的Java软件开发者所共同开发 它提供一个易用的框架来实现把一个面向对象的域模型映射到一传统的关系数据库 它不仅负责从Java类到数据库表格(以及来自Java数据类型的SQL数据类型)的映射 而且还提供数据查询和检索能力 并能大大减少花在SQL和JDBC手工数据处理上的开发时间

Hibernate的目标是减轻开发者的与大量普通的数据持续性相联系的编程任务 Hibernate还能够适应开发进程 无论它是刚开始设计还是来自一现成的数据库 Hibernate可以自动生成SQL 使开发者摆脱了手工处理结果集和进行对象转化的繁琐任务 并能使应用程序移植到所有的SQL数据库 它还能提供透明的持续性 对持续性类的唯一的要求的是实现一个无参数的构造器

这个框架典型地使用在JavaSwing应用软件 基于Servlet的Java应用软件和使用EJBsession beans的J EE应用软件中

结论

lishixinzhi/Article/program/Java/hx/201311/26488