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

Dorado与Struts、Hibernate、Spring的集成开发模式

阅读更多

Dorado与Struts、Hibernate、Spring的集成开发模式


 

      dorado是一套成熟的Web应用开发套件, 其中包含了一个完整的具有下一代Web应用特征的表现层解决方案。本文着重介绍了如何利用dorado的表现层与目前较为流行的StrutsHibernateSpring进行协同开发。

mvc2.gif
图表
1基于MVC模式的总体框架图

    上图是利用dorado的表现层与目前较为流行的StrutsHibernateSpring进行协同开发的总体框架图。从此图中我们不难看出与传统的MVC的开发模式的最大区别在于View部分dorado的表现层实现。

发起请求

      从浏览器发出请求开始(如图中的1号箭头)。该请求首先将被StrutsActionServlet接受,然后ActionServlet会根据用户的Struts配置确定应触发哪一个具体的Action

调用业务逻辑

        Action的主要任务是调用某一个业务逻辑对象BO(Business Object)已完成相应的业务操作。由于我们在此框架考虑引入了Spring,因此Action将不必直接创建具体的BO。而是通过Spring框架利用反向注入的原理(Ioc)来得到BO的实例。
BO当中我们应当通过数据访问对象DAO(Data Access Object)来实现对数据的访问操作。由于我们考虑在开发模式中引入Spring。因此,此处具体使用的DAO实例也应通过Spring来获取。
为了更好地实现业务逻辑的面向对象化,我们还可以考虑利用Hibernate来作为DAO的具体实现方式。如此便有的了上图中所展示的Model层的架构。最终在整个系统中DAO成为了唯一的数据库访问途经。通常我们可以将此图中的DAOHibernate统称为数据持久层。
    另外,在某些情况我们也可以考虑简化此处的持久层设计。由于Hibernate本身就可以作为独立的持久层实现,因此也可以将此处的DAO对象省去,直接在BO中利用Hibernate完成数据访问。
当我们的Action完成了对BO的调用之后,我们应当将业务逻辑个直接结果存入到上下文对象(Context)当中,以便于稍后的View能够得到这些数据并用于界面的绘制和展现。在通常模式下BO的执行结果都是以VOValue Object)的方式返回的。VO既可以可以独立的JavaBean也可以是JavaBean的集合(Collection 例如:List Set)

 转发请求

    Action完成上述操作之后Struts应根据BO的执行结果和用户的配置将请求转发给某个具体的JSP来实现界面的展现。由于此处引入了dorado的表现层,因此JSP的作用已被弱化为了单一的对视图模型(ViewModel)中的各种可视化对象进行布局。
    视图模型是一种用户描述视图逻辑的对象。例如我们将表格要如何显示、单击按钮后要完成什么动作、下拉框如何进行赋值等信息都归纳为视图逻辑。视图模型只负责声明和描述对象,而不负责对象具体的摆放位置。视图模型无法独立的访问View层之外的数据,视图模型只能引用在数据模块(Module)中定义的数据。
数据模块是dorado的表现层中专门用于访问外部数据的一种对象。例如在此处的开发模式当中我们就利用数据模块来访问BO返回的执行结果。

值对象(VO)的传递

   由于我们不能把数据模块的激活和BO的调用看作是一个同步的过程。因此数据模块无法直接得到BO返回的执行结果,而只能通过上下文对象来获取BO返回的VO。此处的上下文对象一般是指Request对象的Attributies属性集。
数据模块在得到VO之后需要自动将VO中包含的信息反射成dorado中的数据集(Dataset)。由于此种数据转化在某些极端的情况是非常复杂的(例如VO的多级集合嵌套),因此我们必要定义一些描述信息来辅助dorado按照正确的方式进行数据转换。值得庆幸的是doradoStudio可以自动生成绝大部分的描述信息。我们只需要根据实际情况的在必要的时候对这些描述信息做少量的调整就可以了。

            反馈 VO的信息被正确的转化到Dataset中之后,doradoModuleViewModel将按照其标准的方式运行,并最终通过JSP将视图信息反馈给浏览器。此处,dorado的表现层之所以需要数据模块、视图模型和JSP的协同工作是为了更好的实现代码的重用。

    综上5个步骤,我们不难看出doradoStrutsHibernateSpring这些产品进行整合的关键在步骤4,即如何将VO转换成dorado中的Dataset。而且事实上dorado的对象本身完全不需要对StrutsHibernateSpring中的任何对象进行直接调用。这种松耦合的结合方式可以充分的保证系统架构将来的灵活性和扩展性。

结论

    此种开发模式与传统的开发模式比较,其最大的优势在于可以利用dorado大大的节省开发人员在开发Web应用表现层式的工作量,同时又为我们的应用提供非常友好、易用的用户交互界面,将应用直接升级成新一代的富客户端网络应用(Rich Internet Application)

    此种开发模式与标准的dorado的开发相比将会带来开发工作量的明显加大,不过同时在开发模式上的标准化也可以在另外一些方面为我们带来好处。例如可以系统架构具有更好的扩展性,使得将来在需要的时候引入其他框架类产品的变得相对容易。

 

工作量

界面

扩展性

传统MVC (使用上述开发模式中除dorado外的所有技术)

最大

简陋

引入doradoMVC架构(使用本文介绍的开发模式)

较大

友好(富客户端)

dorado的标准开发模式(不包含StrutsHibernateSpring

较小

友好(富客户端)

较好

      Dorado除可以帮我们改善界面之外,还可以为我们提供国际化、性能分析、权限配置等等诸多实用的功能,由此可见引入dorado作带来的好处是不言而喻的,此处不做过多累述。但是对于上表中的后两种开发方式的取舍应根据多方面的实际情况来决断。一般而言,对于规模不是特别大,参与开发的人员不多且预计系统将来升级和扩展不是很频繁的项目,我们仍推荐选用相对简单且快速的第三种方式,即直接使用dorado标准的开发模式。

注:本文引自某人Blog,主要是为了自己学习而收藏的资料

分享到:
评论
2 楼 mark.li.guyu 2007-11-19  
JavaEye并不是讨论Dorado最好的地方,thehim可以去官方BBS(http://bbs.bstek.com)与BSTEK的工程师讨论。
1 楼 aibozeng 2007-11-17  
Darodo 是 好 ,可惜
1. 还没有开源 。
2. 过于集成,一整套包括前后台了。


 



   我想 应该提出一个 WEB 应用 框架 :
前台可以用 :  GWT , jsf , thinware , webwork
web服务层 可以用 : Spring + EJB3
数据层 可以 用 :JPA , Hibernate , OpenJPA
   在 这基础上 , 各层可以提供各种与业务无关的 组件(Tree, Dialog,Tab) 和 最佳实践 。

   然后 ,再根据行业需求,提供 一些 常用的组件和 服务,如:CURD 、安全、look feel,甚至 Portal

  这样 ,当 一个 业务系统要开发时,可以根据需求来选择 组件 和 服务。
   

相关推荐

    整合spring+dorado

    在IT行业中,Spring框架是Java领域最常用的轻量级应用框架之一,而Dorado则是一个企业级的富互联网应用程序(Rich Internet Application,RIA)开发平台。整合Spring与Dorado可以让我们充分利用两者的优势,构建功能...

    Dorado7/9开发环境 (解压即用Eclipse+dorado插件)支持dorado7和dorado9

    标题中的"Dorado7/9开发环境 (解压即用Eclipse+dorado插件)支持dorado7和dorado9"表明这是一个专为Dorado7和Dorado9开发设计的集成开发环境(IDE)。这个环境基于Eclipse,一个广泛使用的开源Java IDE,它已经被扩展...

    dorado-hibernate和dorado-core的jar包

    3. **事务集成**:Dorado的事务管理机制与Hibernate相结合,确保在ORM操作中的事务一致性。 4. **对象查询语言(HQL)支持**:通过Dorado-hibernate,开发者可以使用HQL进行数据库查询,这比传统的SQL更接近面向...

    Dorado 5 快速入门_结合spring框架

    通过以上步骤,你将能够初步掌握Dorado 5与Spring的集成开发。然而,为了深入理解和熟练运用,建议进一步学习Dorado 5的高级特性,如自定义组件、数据绑定、事件处理以及Spring的高级特性,如Spring Security和...

    Dorado7demo

    本实例旨在帮助学习Dorado7的同学深入理解其核心特性和实际应用,通过JDBC调用、结合Spring与Hibernate的开发方式,全面展现Dorado7的强大功能。 一、Dorado7基础知识 Dorado7的核心理念是“业务驱动”,它以模型...

    dorado开发框架 baseProject

    Struts 提供了 MVC(Model-View-Controller)设计模式的实现,用于处理用户界面与业务逻辑之间的交互;Hibernate 则是 ORM(对象关系映射)工具,它简化了数据库操作,使得开发者可以使用 Java 对象来操作数据库。 ...

    Dorado与FCKeditor无缝集成的简单实现

    【Dorado与FCKeditor无缝集成的简单实现】 Dorado是一款高效的Web展现中间件,它作为Web表现层的开发和运行平台,具有提高开发规范性和效率、增强项目可管理性的优点。而FCKeditor则是一种功能强大且灵活的HTML在线...

    Dorado与Maven整合项目.zip

    本项目" Dorado与Maven整合项目 "是将Dorado、Spring和Hibernate这三个强大的框架整合在一起,以便在一个Maven管理的项目环境中进行高效开发。下面我们将详细探讨这些关键知识点。 1. **Dorado7**: Dorado7是一款...

    Dorado与FCKeditor无缝集成的简单实现.pdf

    5. 实现步骤:首先,在开发工具中集成了Dorado的Eclipse插件,然后使用JavaScript将FCKeditor与Dorado组件进行关联,并使用Div标签展现Dorado的文本数据。 知识点总结: * Dorado数据展现原理 * FCKeditor替代Text...

    Dorado+Spring+Mybatis.zip

    项目使用Dorado7 IDE进行开发,这是一个强大的集成开发环境,专为Dorado应用设计,提供图形化的组件拖放、布局编辑以及调试工具,有助于提升开发效率。服务器推荐使用Tomcat,这是一款轻量级的应用服务器,对于中...

    dorado7-eclipse研发工具

    【 dorado7-eclipse研发工具 】是一款专为 dorado7 前端框架开发设计的集成环境,尤其适用于那些需要进行国有企业和银行等传统项目的后期维护工作。Dorado7 是一个基于Java的企业级Web应用开发框架,它提供了一整套...

    喝喝茶编编程(使用dorado基础技术进行Web应用开发)

    - **多层开发模式**:在这种模式中,dorado不仅通过JDBC连接数据库,还会集成其他的业务逻辑框架(如Struts、Spring、Hibernate等),适用于复杂的应用场景。 ### 第一杯茶:单表展现 #### 2.1 页面效果 这部分...

    使用dorado基础技术进行Web应用开发

    同时,它也支持与Spring、Hibernate等流行框架集成,进一步扩展了其功能。 通过学习"喝喝茶编编程-使用dorado基础技术进行Web应用开发 v1.0.doc"这份文档,开发者将全面理解Dorado的架构、组件、数据处理、事件机制...

    dorado7-ide-0.7.2.zip

    而“dorado7-ide-0.7.2.zip”这个压缩包,正是为Dorado7用户提供的一款专门的集成开发环境(IDE),旨在提升开发效率,简化项目构建过程。 Dorado7 IDE是针对Dorado7框架精心设计的开发工具,它集成了代码编辑、...

    dorado5.0-doc

    在本文档中,我们将深入探讨 Dorado5 的核心概念、组件体系以及如何通过 Marmot 框架将 Dorado5 与 Spring 整合,同时也会涉及利用 Hibernate 实现持久层操作的 HR 系统开发。 首先,Dorado5 的组件体系是其核心...

    dorado5 eclipse插件

    7. **版本控制集成**:Dorado5 Eclipse插件通常会与Eclipse内置的版本控制系统(如Git、SVN等)集成,方便团队协作开发和版本管理。 8. **学习资源**:Eclipse插件通常会包含一些学习和参考文档,帮助开发者更好地...

    BDF3项目-基于dorado7

    Spring Boot的核心特性是可以创建无配置的、独立的、生产就绪的应用程序,并且对集成Spring生态系统中的其他组件提供了默认配置,大大提高了开发效率。 在这个项目中,"界面已经更新,扁平化"意味着BDF3项目在用户...

Global site tag (gtag.js) - Google Analytics