Java Web应用框架研究与应用
2017-11-27杨国勋
杨国勋
摘 要 为提高Web应用系统开发的效率和质量,IT企业通常使用框架技术来进行Web应用的设计和开发。本文对目前通用的基于Java技术的SSH三大框架的技术和特点进行了研究,并分析了在实际Java Web应用设计开发中各框架的应用范围。
关键词 Struts2;Hibernate;Spring;控制反转;面向切面编程
中图分类号 TP3 文献标识码 A 文章编号 1674-6708(2017)198-0090-02
随着互联网的发展普及,市场对建立在互联网上的Web应用的需求也越来越多,企业内部的信息化管理系统也逐渐从原来的C/S结构的桌面软件应用升级到基于B/S结构的Web应用系统,因此如何高效率和高质量的开发Web应用系统,就成了各家IT企业需要迫切解决的问题。在Web应用开发中,IT企业通常会使用框架技术来进行开发。因为很多Web应用的底层功能需求都是一致的,例如数据库的访问,http请求的处理和响应的设计等,另外一方面Web应用项目通常是由多个软件工程师协作开发的,而框架提供了良好的设计模式和分层设计,使得Web应用的分层和分工更加合理和高效。正是因为使用框架设计的诸多优点,绝大部分公司都采用框架来进行Web应用程序的设计和开发,其中一些大型的IT公司经过多年的技术积累,研发了适合本公司业务需求的框架,而大部分公司则是采用了市场中流行的框架来进行Web应用的设计开发。其中基于Java技术的就有SSH框架,SSH框架其实是由3个框架组成,有位于表示层的Struts2框架,位于业务逻辑层的Spring框架和数据访问层的Hibernate框架。
1 Struts2框架
Struts2是实现了简洁MVC设计模式的Web应用开发框架。Struts2定义了通用的控制器(Controller),使用Action对用户请求做了封装并调用对应业务逻辑模型(Model)进行处理,通过配置文件设置请求响应的跳转视图(View),这样的设计降低了系统各个模块的耦合度,使得前期开发和后期维护都更加高效。使用Struts2进行开发还有以下优势。
1)Struts2框架的大部分功能都是通过拦截器的方式实现的,拦截器是面向切面编程(AOP)的一种实现策略,通过拦截器的方式软件工程师可以根据自己的需要很方便的对Struts2框架中提供的功能进行取舍,组合,修改和自定义。
2)Struts2框架提供了方便的表单参数获取方式,可以通过Action的属性来获取参数,通过DomainModel获取参数或通过ModelDriven获取参数。
3)Struts2框架提供了丰富的页面标签等简化编码的工具来替代JSTL。
4)Struts2框架提供了异常处理机制,使得软件工程师处理异常更加简单。
5)Struts2框架提供了页面国际化的功能,使得Web应用能够很方便的实现页面的国际化。
6)Struts2框架提供了输入数据的校验机制,使得软件工程师使用Struts2的页面标签和简单的xml文件配置就能实现很复杂的用戶输入数据的校验。
2 Hibernate框架
有些在内存中处理的数据最终是需要保存到数据库中的,这个过程被称为数据的持久化,在Java技术中是使用JDBC的技术来实现,而使用JDBC的技术就需要在代码中使用SQL语言这类的关系数据库的操作语言,而Java是面向对象的语言,因此在程序中就总是要处理关系数据到对象的相互转换和映射,使得代码编写繁琐,因此有些软件工程师自己在JDBC 技术基础上编写了相应的框架实现了关系数据到对象的相互转换和映射,其中目前最流行的框架就是Hibernate。
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了代码封装,可以自动生成SQL语句,软件工程师完全可以不用在代码中写一条SQL语句,就能够对关系数据库进行操作,可以完全使用面向对象编程思想来处理关系数据。Hibernate可以应用在任何使用JDBC的场合,既可以在Web应用中使用,也可以在窗体桌面程序中使用。Hibernate提供了延迟加载机制,只是在需要的时候才将数据库中的数据取出来映射成对象,这样就减少了服务器内存的占用,提升了服务器的性能。Hibernate还提供了数据缓存机制,通过一级缓存和二级缓存将数据查询数据存放到缓存区,再次需要相关数据时可以先直接到缓存区取,提高了Web应用的响应速度。
3 Spring框架
Spring框架是轻量级的使用了控制反转和面向切面编程技术的容器框架,主要是针对JavaBean的生命周期进行管理的轻量级容器。
控制反转是一种设计模式,通过此模式可以解决代码间的耦合,它把耦合从代码中移出去,放到统一的XML文件中,通过一个容器在需要的时候把这个依赖关系形成,即把需要的接口实现注入到需要它的类中。Spring实现了控制反转模式,由Spring来管理对象的生命周期、依赖关系等,从而使得应用程序的配置和依赖性规范与实际的应用程序代码分开。其中一个特点就是通过文本的配置文件进行应用程序组件间相互关系的配置,而不用重新修改并编译具体的代码。
面向切面编程让关注点代码与业务代码分离,关注点代码就是指具有通用功能,会被反复调用的一段代码,面向切面编程就是将这部分代码抽取出来形成切面类,提供给不同的业务代码进行调用。面向切面编程的特点是可以动态地添加和删除在切面上的逻辑而不影响原来的执行代码。
正是由于Spring是基于控制反转和面向切面的技术,因此使用Spring框架可以很方便的对Java对象进行管理,而不影响原有项目的关键代码,可以快速高效的将多个框架整合在一起。
4 SSH框架整合
根据SSH这3个框架的不同特点,在整合的时候,Struts2位于表示层负责Web应用和用户的交互和页面逻辑的跳转,Hibernate位于数据访问层负责数据库的操作,Spring位于业务逻辑层负责管理业务逻辑处理对象,并可以根据需要管理Struts2和Hibernate中核心对象的生命周期。其整合方式如图1所示。
这样的分层方式使得软件开发团队的分工更加明确,每位工程师都只需要专注自己擅长的领域,提高了开发效率。当系统需要进行功能变更和维护时也更加方便,而且因为Spring具有控制反转和面向切面编程的特性,在必要时也可以很方便的替换表示层和数据访问层框架。
参考文献
[1]李健.Java SSH框架在Java Web中的应用[J].电脑与电信,2016(3):69-72.
[2]张宇.基于Spring的MVC框架设计与实现[J].计算机工程,2010,36(4):59-62.endprint