资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
Dorado 与 Struts、Hibernate、Spring 的集成开发模式dorado 是一套成熟的 Web 应用开发套件, 其中包含了一个完整的具有下一代Web 应用特征的表现层解决方案。本文着重介绍了如何利用 dorado 的表现层与目前较为流行的 Struts、Hibernate、Spring 进行协同开发。 图表 1 基于 MVC 模式的总体框架图 上图是利用 dorado 的表现层与目前较为流行的 Struts、Hibernate、Spring 进行协同开发的总体框架图。从此图中我们不难看出与传统的 MVC 的开发模式的最大区别在于 View 部分 dorado 的表现层实现。1.发起请求从浏览器发出请求开始(如图中的 1 号箭头)。该请求首先将被 Struts 的ActionServlet 接收,然后 ActionServlet 会根据用户的 Struts 配置确定应触发哪一个具体的 Action。2.调用业务逻辑Action 的主要任务是调用某一个业务逻辑对象 BO(Business Object)以完成相应的业务操作。由于我们在此框架考虑引入了 Spring,因此 Action 将不必直接创建具体的 BO。而是通过 Spring 框架利用反向注入的原理(IOC)来得到BO 的实例。在 BO 当中我们应当通过数据访问对象 DAO(Data Access Object)来实现对数据的访问操作。由于我们考虑在开发模式中引入 Spring。因此,此处具体使用的 DAO 实例也应通过 Spring 来获取。为了更好地实现业务逻辑的面向对象化,我们还可以考虑利用 Hibernate来作为 DAO 的具体实现方式。如此便有的了上图中所展示的 Model 层的架构。最终在整个系统中 DAO 成为了唯一的数据库访问途经。通常我们可以将此图中的 DAO 和 Hibernate 统称为数据持久层。另外,在某些情况我们也可以考虑简化此处的持久层设计。由于Hibernate 本身就可以作为独立的持久层实现,因此也可以将此处的 DAO 对象省去,直接在 BO 中利用 Hibernate 完成数据访问。当我们的 Action 完成了对 BO 的调用之后,我们应当将业务逻辑的结果直接存入到上下文对象(Context)当中,以便于稍后的 View 能够得到这些数据并用于界面的绘制和展现。在通常模式下 BO 的执行结果都是以 VO(Value Object)的方式返回的。VO 既可以是独立的 JavaBean 也可以是 JavaBean 的集合(Collection, 例如:List 、Set) 。3.转发请求当 Action 完成上述操作之后 Struts 应根据 BO 的执行结果和用户的配置将请求转发给某个具体的 JSP 来实现界面的展现。由于此处引入了 dorado 的表现层,因此 JSP 的作用已被弱化为了单一的对视图模型(ViewModel)中的各种可视化对象进行布局。视图模型是一种用户描述视图逻辑的对象。例如我们要将表格如何显示、单击按钮后要完成什么动作、下拉框如何进行赋值等信息都归纳为视图逻辑。视图模型只负责声明和描述对象,而不负责对象的具体摆放位置。视图模型无法独立的访问 View 层之外的数据,视图模型只能引用在数据模块(Module)中定义的数据。数据模块是 dorado 的表现层中专门用于访问外部数据的一种对象。例如在此处的开发模式中我们就利用数据模块来访问 BO 返回的执行结果。4.值对象(VO)的传递由于我们不能把数据模块的激活和 BO 的调用看作是一个同步的过程。因此数据模块无法直接得到 BO 返回的执行结果,而只能通过上下文对象来获取 BO返回的 VO。此处的上下文对象一般是指 Request 对象的 Attributies 属性集。数据模块在得到 VO 之后需要自动将 VO 中包含的信息反射成 dorado 中的数据集(Dataset)。由于此种数据转化在某些极端的情况是非常复杂的(例如 VO 的多级集合嵌套),因此我们必要定义一些描述信息来辅助 dorado 按照正确的方式进行数据转换。值得庆幸的是 dorado 的 Studio 可以自动生成绝大部分的描述信息。我们只需要根据实际情况在必要的时候对这些描述信息做少量的调整就可以了。反馈 VO 的信息被正确的转化到 Dataset 中之后,dorado 的 Module 和ViewModel 将按照其标准的方式运行,并最终通过 JSP 将视图信息反馈给浏览器。此处,dorado 的表现层之所以需要数据模块、视图模型和 JSP 的协同工作是为了更好的实现代码的重用。 综上 4 个步骤,我们不难看出 dorado 与 Struts、Hibernate、Spring 这些产品进行整合的关键在步骤 4,即如何将 VO 转换成 dorado 中的 Dataset。而且事实上 dorado 的对象本身完全不需要对 Struts、Hibernate、Spring 中的任何对象进行直接调用。这种松耦合的结合方式可以充分的保证系统架构将来的灵活性和扩展性。 结论 :此种开发模式与传统的开发模式比较,其最大的优势在于可以利用 dorado大大的节省开发人员在开发 Web 应用表现层时的工作量,同时又为我们的应用提供非常友好、易用的用户交互界面,将应用直接升级成新一代的富客户端网络应用(Rich Internet Application)。 此种开发模式与标准的 dorado 开发相比将会带来开发工作量的明显加大,不过同时在开发模式上的标准化也可以在另外一些方面为我们带来好处。例如:可使系统架构具有更好的扩展性,使得将来在需要引入其他框架类产品的时候变得相对容易。 工作量 界面 扩展性 传统 MVC (使用上述开发模式中除 dorado 外的所有技术) 最大 简陋 好引入 dorado 的 MVC 架构(使用本文介绍的开发模式) 较大(推荐开发 模式) 友好(富客户端) 好dorado 的标准开发模式(不包含Struts、Hibernate、Spring) 较小 友好(富客户端) 较好Dorado 除可以帮我们改善界面之外,还可以为我们提供国际化、性能分析、权限配置等诸多实用的功能,由此可见引入 dorado 带来的好处是不言而喻的,此处不做过多陈述。但是对于上表中的后两种开发方式的取舍应根据多方面的实际情况来决断。一般而言,对于规模不是特别大,参与开发的人员不多且预计系统将来升级和扩展不是很频繁的项目,我们仍推荐选用相对简单且快速的第三种方式,即直接使用 dorado 标准的开发模式。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号