您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 开发 Spring+Struts+Hibernate
MyEclipse6Java开发中文教程1刘长炯著第十一章开发Spring+Struts+Hibernate应用第十一章开发Spring+Struts+Hibernate应用.....................................................................111.1创建数据库........................................................................................................311.2快速开发Struts应用........................................................................................311.3添加Hibernate功能.......................................................................................1011.4添加Spring功能.............................................................................................1111.5Spring整合Hibernate.....................................................................................1211.6开发业务层代码...............................................................................................2011.7Spring整合Struts...........................................................................................2211.7.1给Action类加入message属性................................................................2311.7.2在Struts配置文件中加入Spring配置信息............................................2411.7.3在Spring配置文件中加入Action的bean定义...........................................2511.7.4测试,Asm出错和log4j.properties文件................................................2611.7.5Spring整合Struts的其它方式...................................................................2811.8完成整合:修改Action代码注入业务层............................................................3211.9测试运行..........................................................................................................3411.10原理探索:模拟Action代理类实现Spring+Struts.....................................3411.11开发增删改查的综合用户管理例子.................................................................3711.11.1创建新项目...........................................................................................3711.11.2用Struts设计器制作前台业务流程........................................................3811.11.3设计业务层功能...................................................................................4211.11.4开发业务层和DAO层代码.....................................................................4411.11.5开发前台页面流程................................................................................5211.11.6整合Spring,Struts和Hibernate...........................................................6711.11.7发布,运行,测试................................................................................7211.11.8思考与练习...........................................................................................7311.12collections.SequencedHashMap异常的解决方案.........................................7311.13小结...............................................................................................................74本章内容将会给大家介绍目前比较流行的开源软件架构:SSH,也就是Spring+Struts1.x+Hibernate,或者常说的Spring整合Struts1.x,Hibernate开发。本章将会介绍在上一章的Spring整合Hibernate基础上阐述如何将Spring和Struts相整合(这是本章的重点内容),来开发一个简单的用户登录功能(也就是将第九章开发Struts1.x应用所开发的用户登录应用改用Spring整合Hibernate的方式来完成)。为了方便读者,我们先采用最简单的方式进行整合,然后再会讨论不同的Spring+Struts整合策略来作为扩展部分,让读者能有所对比。最后我们会实现一个增删查改的用户管理应用。我们先来探讨一个问题,为什么要用Spring来整合Struts呢?难道在Struts里面直接新建一个ApplicationContext然后通过getBean()获取对应的DAO层不就也算完成整合了MyEclipse6Java开发中文教程2刘长炯著嘛?没错,这样也算整合,但是显然这样一来,所有的Struts类的代码都得改写,而且还有一个很大的缺陷:我们知道Web应用的访问是十分频繁的,例如有的站点一天要支持几百万的访问量,每次都来创建一个新的Spring容器类是十分消耗资源的,所以这种做法是比较容易想到但是却不实用的。而我们的目的是尽量不改或者少改Struts里面的代码来完成整合功能,实际情况是让Spring来创建Action类,然后注入需要的DAO层等等的对象,也就是说要把Struts的Action类变成Spring配置文件中的一个普通Java类定义,可以用property等标签来设置对应的属性。换句话说,就是要把Action代码中的直接调用Spring类的代码://StrutsXXXAction.javapublicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){//手工创建Spring容器类...ApplicationContextctx=newClassPathXmlApplicationContext(applicationContext.xml);StudentDAOdao=(StudentDAO)ctx.getBean(StudentDAO);dao.xxx();//调用DAO...}变成注入方式:privateStudentDAOdao;publicStudentDAOgetStudentDAO(){returndao;}publicvoidsetStudentDAO(StudentDAOdao){this.dao=dao;}publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){//直接使用被Spring注入的DAO的实例dao.xxx();//调用DAO,或者用代码getStudentDAO().xxx();...}外加一个Spring中的Bean定义:beanname=”/login”class=”com.xxx.StrutsXXXAction”propertyname=studentDAOrefbean=dao//property/beanMyEclipse6Java开发中文教程3刘长炯著注意bean的name属性,只有这个属性才能加入带特殊字符的路径名,而对应的属性studentDAO则通过配置文件来注入上一章已经定义好的HibernateDAO类就可以了,而这个DAO因为是Spring所定义的,所以可以和上一章的内容一样进行Spring整合Hibernate的自动事务代理功能开发,而bean的class则指向写好的StrutsAction类。这样,就可以解决上文所提到的性能问题。这就是整合的真正目的所在,稍后我们会讨论详细的过程。11.1创建数据库我们的项目所用的表结构和以前的没有任何区别。这里我们使用MySQL数据库来完成练习。建表的SQL如下所示:CREATETABLEStudent(idintNOTNULLauto_increment,usernamevarchar(200)NOTNULL,passwordvarchar(20)NOTNULL,ageint,PRIMARYKEY(id))ENGINE=MyISAMDEFAULTCHARSET=GBK。详细内容请参考5.2创建数据库表格一节的内容。11.2快速开发Struts应用第一阶段我们就是创建一个极其简单的登录功能的程序,前台采用Struts,后台采用Spring+Hibernate完成。关于本节的详细操作说明可以参考第九章开发Struts1.x应用。这个应用的流程图(用MyEclipse绘制,文件名是模型.umr)如下所示:图11.1登录应用的页面流程首先我们新建一个Web项目ssh1,也就是Spring+Struts+Hibernate第一个项目的意思。选择菜单FileNewWebProject,可以启动创建Web项目的向导对话框,在对话框的ProjectName中输入ssh1,然后选中J2EESpecificationLevel下面的JavaEE5.0单选钮,最后点击Fini
本文标题:开发 Spring+Struts+Hibernate
链接地址:https://www.777doc.com/doc-5040406 .html