Javaweb流行框架的了解与应用

2023-01-08

1 MVC设计模式

MVC并不是java语言所特有垢设计思想, 也并不是Web应用所特有的思想, 它是所有面向对象的设计语言都应该遵守的规范, MVC体系结构具有三个层面:模型 (Model) 、视图 (View) 和控制 (Controller) , 每个层面有其各自的功能作用, 三个层各施其职, 所以, 如果一旦哪一层的需求发生了变化, 就只需要更改相应的层中的代码而不会影响到其它层中的代码。

视图 (View) 代表用户交互界面。MVC设计模式下, 页面就是负责接收数据并对之进行简单处理, 再有就是接收用户的请求和显示处理结果, 而涉及到输出与输入之间的业务逻辑的处理则不在视图进行。

控制器 (Controller) 的作用是根据用户的请求输入和业务逻辑, 控制用户界面数据的显示和更新模型对象的状态;控制器用于管理用户与视图发生的交互, 在用户表示层组件对模型中的有关组件进行访问时, 表示层组件不能直接去执行模型组件而要通过控制器组件来间接地实现。控制器能从视图中获取请求的值, 并将它传给对应的模型组件进行处理, 简单说就是视图和模型之间的“转接器”。

模型 (Model) 是应用程序的主体部分并表示应用系统中的业务数据, 或者业务逻辑功能的实现。模型接受从控制器转发来的由视图发送的请求数据, 并返回最终的处理结果。

2 J2EE流行框架的整合

当前轻量级的最佳组合框架:Struts2+Spring+Hibernate+Ext。

Ext是一个Ajax框架, 他是由javascript语言编写的, 用于在客户端创建丰富多彩的web应用程序界面。减轻了前台美工人员对页面设计的头疼问题。Ext JS可以用来开发RIA也即富客户端的AJAX应用, 是一个用javascript写的, 主要用于创建前端用户界面。

Struts可以说是全世界上第一个MVC的框架了, 它一直是MVC领域里最流行的框架之一, Struts2出世后完全取代了原有的Struts和Web Work框架, Struts2的开发团体由struts和Web Work两个团队给成, 保证了Struts2的强大。

Spring是一个轻型容器 (light-weight container) , 其核心是Bean工厂 (Bean Factory) , 用以构造我们所需要的M (Model) 。DAO/ORM的实现方便我们进行数据库的开发;Web MVC (Struts2) 和Spring Web提供了Java Web应用的框架或与其他流行的Web框架进行集成。

Hibernate是一个开放源代码的对象关系映射框架, 它对JDBC进行了轻量级的对象封装, 使Java程序员可以随心所欲的使用对象编程思维来操纵数据库。它不仅提供了从Java类到数据表之间的映射, 也提供了数据查询和恢复机制。相对于使用JDBC和SQL来手工操作数据库, Hibernate可以大大减少操作数据库的工作量。

3 Struts的分工

Spring管理Struts2的Bean;在Struts2和Spring的整合中一个核心问题就是, Struts2的Bean如何让Spring感知。实际上Struts2提供了一个最基本的Spring的工厂, 只要在Structs2的配置文件中添加上:struts object Factory=spring这个配置项就可以实现Structs2和Spring的互访。成教系统对Struts2的运用主要在其请求转发功能和展示标签上。

4 Spring的分工

Spring在成人教务管理系统中的作用有三点: (1) 系统中涉及的实体Bean和业务Bean主要由Spring来进行管理。 (2) Spring对Hibernate的支持。 (3) Spring对事务的控制。

Spring为事务的管理提供了在高层次建立统一的事务管理机制的事务抽象, Spring事务管理继承了模板的概念, 提供了一个事务的管理模板:Transaction Template。通过该模板并配合使用事务回调Transaction Callback指定具体的持久化操作, 就可以通过编程的方式实现事务的管理, 而且无需关注事务的同步和异常处理等操作。

5 Hibernate的分工

首先事务管理。通过业务层面的分析任何系统都逃脱不了增删改查的数据库操作, 而这些操作为了安全起见也必须在对应的数据库事务中完成, 成教系统中使用的是Hibernate作为持久层, 而Hibernate本身提供了四种的数据库事务隔离级别:串行化、可重复读、读已提交和读未提交;这些事务级别可以在Hibernate的配置文件中配置。

其次批量处理。在设计上除使用数据库存储过程来处理批量数据外, 还使用了Hibernate的批量处理功能。一般情况下, 使用Hibernate向数据库一次性更新和插入50000记录以上时就会报内存溢出的错误, 这是由Hibernate在处理更新和插入操作时的机制决定的。Hibernate为了减少和数据库的I/O交互, 并不是用户在做一次更新和插入就访问一次数据库, 而是先缓存在Hibernate的Session缓存中, 当用户作事务提交或调用flush方法、close方法和save方法时自动刷新缓存, 并做一次数据库的I/O交互, 将数据固化到数据库中, 而Session的缓存一般的上限是在50000个对象左右, 所以超过50000个时就会有Session的缓存溢出问题。Hibernate提供了两种方式来处理这个问题:一是使用配置文件:hibernate.jdbc.batch_size=20;二是用户自己手动调用flush方法;成教系统中使用第二种方法, 因为这样操作可以有效地控制提交次数;一般情况下选择40条记录提交一次。

6 结语

以上我们所提到的这些框架都是由团队开发出来的, 其实他们只是用了java封装了一个框架, 在用到这个功能的时候就很方便了, 这些框架都是基于java最原始的web开发经验面开发出来的。

摘要:J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版, J2EE对EJB (Enterprise JavaBeans) 、Java Servlets API、JSP (Java Server Pages) 以及XML技术的全面支持, 它由一整套服务 (Services) 、应用程序接口 (APIs) 和协议构成, 它对开发基于Web的多层应用提供了功能支持。

关键词:模式,柜架

上一篇:“以人民为中心”发展的共享理念渊源探究下一篇:工程造价全过程控制管理研究