框架的选择

     对于实验一选择使用SSH(Struts 2+Hibernate+Spring)框架,这学期J2EE这门课程中刚好也分别学习了Struts 2、Hibernate和Spring框架,对其有了初步的了解,并通过课上的练习和课下的应用掌握了使用方法和其各自如何解决问题。在这些知识和训练的基础上,而且了解到这种框架的集成是目前比较流行的一种Web应用程序开源集成框架,可用于构建灵活、易于扩展的多层Web应用。所以选择使用这种框架一方面巩固一下课上知识的学习,增加一些框架的应用技巧。

     在这种集成框架下,每一个框架都发挥了它特有的优势并相互结合,虽然使用起来比单独使用的JSP + JavaBean的方式会复杂些,但是这样相辅相成会使程序的层次清晰,可维护性与扩充性大大增强,更重要的是使得各层次的耦合性非常小。

     Struts 2主要负责Web层ActionFormBean接收网页中表单提交的数据,然后通过Action进行处理,再Forward到对应的网页,对流程进行控制,就是页面转向,同时对数据进行处理操作,但是它本身几乎不直接访问数据库,而是调用数据库操作类(DAO)的相关方法, 可以通过写action方法,自动的解析出请求中的参数,将请求交给配置的action来处理,能够更好的实现MVC接口。把Servlet、JSP、自定义标签和信息资源整合到一个统一的框架中,进行开发时不用再编码实现全套MVC模式,极大的节省了时间。

     Hibernate负责持久化层,完成数据库的crud操作,hibernate为持久层,体现并统一OR/Mapping。它有一组.hbm.xml文件和POJO,是跟数据库中的表相对应的,然后定义DAO,这些是跟数据库打交道的类,它们会使用PO。Hibernate是一个非常优秀和流行的ORM框架,主要负责数据的持久化操作,包括数据的增删查改,通过使用Hibernate框架,可以使用面向对象的方式来进行数据库的访问,从而取代以前使用的JDBC进行数据库的访问,不用再写SQL语句了。

     Spring负责业务层管理,即Service(或Manager),service为action提供统计的调用接口,封装持久层的DAO,同时可以写一些自己的业务方法。Spring负责统一JavaBean管理方法和声明事务管理,最后Spring来集成Hibernate。Spring主要有IOC控制反转、AOP面向切面编程等构成,使得可以针对接口编程,在修改功能模块实现代码的时候比较方便,因为有依赖注入,不必自己去实例化对象,提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。

     使用Struts 2+Hibernate+Spring框架对象的调用流程是:JSP->Action->Service->DAO->Hibernate。数据的流向是ActionFormBean接收用户的数据,Action将数据从ActionFormBean中取出,封装成PO,再调用业务层的Bean类,完成各种业务处理后再forward,而业务层Bean收到这个PO对象后,会调用DAO接口方法,进行持久化操作。不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离,这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。

     通过运用,进一步熟悉这三个框架与集成之后的框架的使用,对于以后做项目会很有用。

原文地址:https://www.cnblogs.com/mxj333/p/5467972.html