ofbiz和struts的对比

原创 2015年11月20日 10:37:19

Struts的MVC实现

Struts 的体系结构实现了Model-View-Controller设计模式的概念,它将这些概念映射到web应用程序的组件和概念中。

 

                                          图1 Struts的MVC实现图

下面是处理步骤的描述

1由显示视图产生一个请求。

2  请求被ActionServlet(控制器)接收,它在struts-config.xml文件中寻找请求的URI,找到对应的Action类后,Action类执行相应的业务逻辑。

3  Action类执行建立在模型组件基础上的业务逻辑,模型组件是和应用程序关联的。

4  一旦Action类处理完业务逻辑,它把控制权返回给ActionServlet。,Action类提供一个键值作为返回的一部分,它指明了处理的结果。ActionServlet使用这个键值来决定在什么视图中显示Action的类处理结果。

5  ActionServletAction类的处理结果传送到指定的视图中,请求的过程也就完成了。

模型(The Model

Struts框架没有提供特定的模型组件。

视图(The View

Struts框架中视图组件对应于一个简单的JSP文件,这个JSP文件包含了Struts定义的标签。这些标签在Struts框架中定义,它使struts应用项目和控制器之间实现松耦合。 

控制器(The Controller

控制器是Struts框架中的中枢,它由org.apache.struts.action.ActionServlet这个servlet来贯彻和执行的。这个org.apache.struts.action.ActionServlet接收所有客户端的请求,并把请求委派到指定的Action(用户扩展自org.apache.struts.action)ActionServlet委派请求是基于客户端传入的URI一旦Action类完成处理,ActionServlet根据Action返回的键值来决定在什么视图中显示Action的类处理结果。

Struts的优势

由于Struts出现的历史比较早,目前,Struts是最流行的Web开发框架,得到了最多开发人员和供应商的支持,是MVC应用的主流。

他的优势很多,如开源、用户群众多、文档丰富、支持好、稳定、轻量级等等,在此不再详述,因为缺少合适的比较对象。

Struts的不足

然而,需要指出的是,Struts并不是唯一实现MVC模式的Web框架。尽管你可能已经习惯了Struts,感觉它很好、足够用,但是,仔细想一想,再看一看别的Web框架,也许不难找出Struts的一些不足之处,这里主要从宏观的角度谈谈。

1.        没有提供特定的模型组件。这是最明显的缺点,模型要自己去实现、封装,用最基本的java Bean可以想象当应用规模比较大时,设计和编码的工作量有多大。当然,从某种意义上也可以说是个优点,因为你可以自由选用自己的模型实现如EJB和其他OR Mapping

2.        Struts只是一个技术框架,也可以说仅仅是一个工具,因为它没有包含任何业务内容。是的,Struts不是一个业务框架,即使是一个登陆验证这样的基本服务你也需要从零开始编码。

3.        难以胜任复杂的大规模级企业应用。实际上,在企业级应用中,Web层只是很薄的一层,并不是分出简单的MVC就可以了。一个单纯的技术框架是没有多少实用价值的。用Struts做简单的Web应用可以,对于复杂规模级应用,太多的东西要编码,Struts显得过于单薄。

Struts和Ofbiz的比较

严格说来,OfbizStruts没有可比性。Ofbiz做了很多人想做却一直没有做好的事,那就是把市面上的知名的开源项目整合起来,形成一个更有价值的业务框架。

Ofbiz包括了几乎所有的软件界的主流技术,所有能被利用的开源项目都被纳入其中。但是,令人吃惊的是,Ofbiz却没有把广为应用的Struts包括进去,相反的采用了JPublish + FreeMaker + BeanShell这三个开源的东西来代替Struts。而要把Struts加进去取代这三者似乎不是一件容易的事。

Ofbiz的总设计师David E. Jones,没有对Struts发表太多的见解,对此有一个简单的解释是:StrutsOfbiz的设计差别太大,没有办法无逢集成。以其能力写一个MVC框架不是问题。

如果真要比较的话,那就是技术框架与业务框架的区别。Ofbiz提供了一整套的开发基于Javaweb应用程序的组件和工具;而Struts并没有提供访问数据库的组件,也没有提供控制工作流的组件。实际上,Struts是一个框架工具,Ofbiz远不止于此,它还包含了部分业务功能及其基础设施。


Ofbiz的好处

缩短开发周期,降低成本

据称,很多基于J2EE的失败实践,都可以归结于拙劣的设计。J2EE规范并不复杂,但是如何遵照J2EE规范,根据自己的业务需求,做一个合适的、高效的、可扩展的设计,是需要实际经验和智慧的。国外的大中型系统基于J2EE的早就很多了,国内近几年也多了起来,但是优秀的设计人员不是很多。Ofbiz的价值在于它的架构非常好,不仅用到了几乎所有的J2EE核心设计模式(Sun公司推荐的),而且还实现了工作流、业务规则引擎,以处理灵活的与变更。这样,就避免了缺少优秀设计人员所造成的拙劣设计。

基于Ofbiz开发,无疑会缩短开发周期,好的设计以及工作流和业务规则引擎的引入,也最大程度的降低了系统的维护成本。


  用很少的code完成复杂的处理

这是Ofbiz 宣称的优点之一。如果把Ofbiz消化了,则基于Ofbiz开发一个CRM和ERP系统会大大缩短开发周期,由于Ofbiz优良的设计,维护的成本应该比较小。

Ofbiz 已经完成了大部分业务类软件系统都需要的部件,像用户认证、工作流、业务规则处理等,很多业务需求都可以通过写XML配置文件,以及很少的java代码来完成。代码量不大,但知道怎么写会比较费时。弄懂Ofbiz以后,写实现代码通常会比较简单,只需要按照它的开发机制度就是了。


   扩展性和移植性好

OFBIZ所提供的系统框架,是一个纯Java的应用程序。框架提供的接口十分的完备,例如核心部件实体引擎,早期版本就有,已经十分的成熟。通过实体引擎,用户不用直接操纵数据库,建立库表、查询、视图、触发器等都可以通过写XML配置文件来完成。也有人提出,实体引擎不能够处理复杂的SQL查询,实际上,一方面这种复杂的SQL查询很少遇到,另一方面实体引擎也同样允许你用SQL代码来操纵这种复杂的查询。

OFBIZ开发者同时维护和Weblogic,Tomcat,Jboss,Resin,Orion等16个厂商的Web和App应用服务器的兼容版本.

OFBIZ开发者同时维护和Oracle,MySql,Sybase,PostgreSQL,Hsql等数据库产品的兼容支持,包括编译、打包、部署到这些数据库产品或应用服务器产品的运行环境下。

OFBIZ开发者同时在Unix和Windows两大操作系统上进行开发和测试,而且具备Java应用系统的所有跨平台的特点。

有了这些,对于大型企业级应用系统的具体、特定实现来说,你有信心实现所谓的“一次开发,到处运行”。



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

使用OFBIZ的理由和不使用OFBIZ的理由

1 使用OFBIZ的理由 1.1 什么是OFBIZ OFBIZ是由Sourceforge维护的一个最著名的开源项目之一,提供创建基于最新J2EE/XML规范和技术标准,构建大型企业级、跨平台、跨数...

ofbiz集成富文本编辑器ueditor

  • 2017年11月07日 14:55
  • 4.33MB
  • 下载

ofbiz开发教程

  • 2015年07月03日 17:30
  • 20.31MB
  • 下载

ofbiz16.11环境搭建

ofbiz16.11环境搭建,以gradlew方式

OFBIZ综合文档

  • 2013年06月04日 21:51
  • 702KB
  • 下载

ofbiz 初学者开发手册

  • 2012年11月08日 11:25
  • 616KB
  • 下载

ofbiz增删改查代码示范

总结一下,ofbiz增删改查的代码 注:配置信息这里就不再表述 1、create,插入数据 Map values = UtilMisc.toMap("id", "1", "name", "alle...
  • diyagea
  • diyagea
  • 2015年12月18日 16:50
  • 2584

ofbiz基础文档.doc

  • 2014年01月29日 10:54
  • 805KB
  • 下载

Ofbiz-minilang标签示例

  • 2014年10月11日 16:58
  • 227KB
  • 下载

ofbiz 安装以及使用mysql数据库

一.安装 安装需要eclipse ,以及eclipse中的javacc和svn插件 svn地址:http://svn.apache.org/repos/asf/ofbiz/branches/rel...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ofbiz和struts的对比
举报原因:
原因补充:

(最多只允许输入30个字)