Struts+Spring+Hibernate整合开发详.docx

上传人:b****2 文档编号:3275393 上传时间:2023-05-05 格式:DOCX 页数:29 大小:800.82KB
下载 相关 举报
Struts+Spring+Hibernate整合开发详.docx_第1页
第1页 / 共29页
Struts+Spring+Hibernate整合开发详.docx_第2页
第2页 / 共29页
Struts+Spring+Hibernate整合开发详.docx_第3页
第3页 / 共29页
Struts+Spring+Hibernate整合开发详.docx_第4页
第4页 / 共29页
Struts+Spring+Hibernate整合开发详.docx_第5页
第5页 / 共29页
Struts+Spring+Hibernate整合开发详.docx_第6页
第6页 / 共29页
Struts+Spring+Hibernate整合开发详.docx_第7页
第7页 / 共29页
Struts+Spring+Hibernate整合开发详.docx_第8页
第8页 / 共29页
Struts+Spring+Hibernate整合开发详.docx_第9页
第9页 / 共29页
Struts+Spring+Hibernate整合开发详.docx_第10页
第10页 / 共29页
Struts+Spring+Hibernate整合开发详.docx_第11页
第11页 / 共29页
Struts+Spring+Hibernate整合开发详.docx_第12页
第12页 / 共29页
Struts+Spring+Hibernate整合开发详.docx_第13页
第13页 / 共29页
Struts+Spring+Hibernate整合开发详.docx_第14页
第14页 / 共29页
Struts+Spring+Hibernate整合开发详.docx_第15页
第15页 / 共29页
Struts+Spring+Hibernate整合开发详.docx_第16页
第16页 / 共29页
Struts+Spring+Hibernate整合开发详.docx_第17页
第17页 / 共29页
Struts+Spring+Hibernate整合开发详.docx_第18页
第18页 / 共29页
Struts+Spring+Hibernate整合开发详.docx_第19页
第19页 / 共29页
Struts+Spring+Hibernate整合开发详.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Struts+Spring+Hibernate整合开发详.docx

《Struts+Spring+Hibernate整合开发详.docx》由会员分享,可在线阅读,更多相关《Struts+Spring+Hibernate整合开发详.docx(29页珍藏版)》请在冰点文库上搜索。

Struts+Spring+Hibernate整合开发详.docx

Struts+Spring+Hibernate整合开发详

Struts+Spring+Hibernate/SSH整合开发详细

(一)

终于,终于将SSH整合成功了,弄了几个小时,可以休息了(有的朋友弄了半个月,甚至重装了系统也没弄好,哎,庆幸啊)。

碰到问题千万不要放弃,要相信没有解决不了的问题!

项目结构图:

jsp部分为:

index.jsp;success.jsp;fail.jsp

UserDAO.java,User.hbm.xml自动生成,HibernateSessionFactory是多余的。

相关的配置文件、类文件详细信息,请参看Struts+Spring+Hibernate/SSH整合开发详细二

以前是整过这三个框架的,可是工作期间都不曾用过,不知不觉之中,学的东西全忘了。

这次又要开始找工作了,看着招聘启事上都写着:

要求熟练掌握Struts,Hibernate或Spring框架……,没得办法,重新学呗。

SpringinAction中文版下载地址(ftp协议)  ftp:

//222.214.218.61/book5/20080228/cf8b35cc-5bcd-4973-b6b7-37ae3ec78391.rar如果无法下载,可以在里重新搜索

首先开始搭建项目环境,步骤如下:

使用平台:

MyEclipse6.0

框架版本:

Struts1.2Hibernate3.0Spring2.0

1>    添加过程:

        <1>新建项目。

PackageExplorer视图下,右键单击New->WebProject;

        <2>添加Struts框架。

菜单栏MyEclipse->Capabilities,或者右键单击新建的项目名,选择快捷菜单中的"MyEclipse"下的二级菜单;设置相关的包名后,请写一个Struts的小例子,用来测试Struts是否可用;

        <3>添加Spring。

步骤同2所述,只不过这次是加入SpringCapabilities。

详细添加步骤如下图所示;

          

         <4>配置数据源。

打开数据库视图,Windows->OpenPerspective->MyEclipseDataBaseExplorer。

新建数据源,在DBBrowser下,右键单击New,配置信息类似下图,

          点击Next,选择"Displayallschemas","Finish"完工。

         <5>点击MyEclipse右上角>>按钮,返回到MyEclipseJavaEnterprise视图。

按类似于2的步骤,添加Hibernate框架,详细步骤如图所示

请选择Hibernate3.0的版本

  

         <6>通过MyEclipse生成操作数据库的Dao类(UserDao),并自动生成映射表的配置文件(在本示例中包含在applicationContext.xml中),将视图切换到MyEclipseDatabaseExplorer,打开我们在前面配置的数据链接,选择我们操作的表User,右键单击,选择:

HibernateReverseEngineering。

详细步骤如下图所示:

        <7>至此,项目环境己经搭建完成。

        需要指出的是,为了使用日志管理的功能,你只须拷贝log4j.properties即可,将其放入到src根目录下。

         log4j.properties配置内容如下(对具体配置不太了解的朋友可以在这之后学一下,此处,你只须修改日志文件存储路径即可):

                

                   log4j.rootLogger=info,A1

                   log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender

                   log4j.appender.A1.Append=true

                   #log文件存储路径,请转换为相应的目录

                   log4j.appender.A1.File=E:

/workspace/ssh2/logs/log4j.log

                   log4j.appender.A1.DatePattern='.'yyyy-MM-dd'.log'

                    log4j.appender.A1.layout=org.apache.log4j.PatternLayout

                   log4j.appender.A1.layout.ConversionPattern=[%-5p]%d{yyyy-MM-ddHH:

mm:

ss}Method:

  %l%n%m%n。

                     #无详细类名、方法名信息

                    #log4j.appender.A1.layout.ConversionPattern=[%-5p]%d{yyyy-MM-ddHH:

mm:

ss}%m%n

                     #-X号:

X信息输出时左对齐;

                    #%p:

日志信息级别

                     #%d{}:

日志信息产生时间

                    #%c:

日志信息所在地(类名)

                    #%m:

产生的日志具体信息

                    #%n:

输出日志信息换行

Spring,Hibernate已经整合在一起了,现在需要将Struts与Spring进行整合。

Spring与Struts整合实现方式

第一,在struts-config.xml中加入

--配置一个插件去集成spring-->

       className="org.springframework.web.struts.ContextLoaderPlugIn">

       

第二,修改struts-config.xml中action节点的配置信息,将原来定义的

   type="com.wuwei.struts.action.ValidateUserAction"name="userForm">

   

   

  

中的type改为:

type="org.springframework.web.struts.DelegatingActionProxy">或者你也可以不改,而在标签前加入如下定义

--加上controller就不用再配置action的type属性了/或者说type属性不用改为

  type="org.springframework.web.struts.DelegatingActionProxy"-->

  processorClass="org.springframework.web.struts.DelegatingRequestProcessor">

第三,在applicationContext.xml中为ValidateUserAction添加定义,将userDao的实例化加给Spring,这也是Spring中的依赖注入

--Struts-->

  class="com.wuwei.struts.action.ValidateUserAction">

  

当然,这里ref(引用)的BeanuserDao也是在applicationContext.xml中己定义好的

--通过HibernateDaoSupport来操作数据库,需要植入sessionFactory

  UserDao继承自HibernateDaoSupport

-->

  

相关的配置文件、类文件详细信息,请参看Struts+Spring+Hibernate/SSH整合开发详细二

如此这般,现在可以运行你的程序了。

为了测试三个框架是否整合成功,你可以在action里什么都不做,只是写一条输入语句即可。

因为搭建SSH项目时,最容易碰到的错误就是:

Servletactionisnotavailable。

如果连action都访问不了,后面的就不需要谈了(文章Bactionisnotavailable?

这个时候log4j.log就起到关键作用了,你可以看下里面出现了什么异常。

我在调试时碰到了:

1.java.lang.NoClassDefFoundError:

org/objectweb/asm/CodeVisitor  和

2.net.sf.cglib.core.CodeGenerationException:

java.lang.reflect.InvocationTargetException-->null

Causedby:

java.lang.reflect.InvocationTargetException

Causedby:

java.lang.SecurityException:

class"com.wuwei.struts.bean.User$$EnhancerByCGLIB$$1016ffbf"'ssignerinformationdoesnotmatchsignerinformationofotherclassesinthesamepackage

的错误。

1的解决办法是:

在使用Spring的AOP编程时,会用到这几个lib:

(版本不一样,文件名也不一样)

asm-2.2.3.jar

asm-commons-2.2.3.jar

asm-util-2.2.3.jar

Hibernate使用如下lib:

asm.jar

asm-attrs.jar

其中asm-2.2.3.jar与asm.jar存在类上的冲突!

使用其中之一或两者都使用,可能会出现如下错误:

java.lang.NoClassDefFoundError:

org/objectweb/asm/CodeVisitor

java.lang.NoClassDefFoundError:

org/objectweb/asm/commons/EmptyVisitor

java.lang.NoSuchMethodError:

org.objectweb.asm.ClassVisitor.visit。

解决办法是:

1.去掉类路径上的关于Hibernate的3个lib

asm.jar

asm-attrs.jar

cglib-2.1.3.jar

2.加入Spring中的以下4个lib

asm-2.2.3.jar

asm-commons-2.2.3.jar

asm-util-2.2.3.jar

cglib-nodep-2.1_3.jar

2的解决办法是:

在….hbm.xml文件中,将class标签的lazy属性改为false(默认为true)

如果有schema="dbo"catalog="test"配置信息,请将其删除

再次运行,打印语句成功"I'minaAction"搭建成功!

补充:

我用的是SQLServer数据库,测试表是User表,调试时出现了

java.sql.SQLException:

在关键字'user'附近有语法错误。

这是因为MSSQL中的User表是系统表,不能直接查询selectusernamefromuser,需要将user用中括号包围[user],同样,为了保证hibernate能正常工作,需将user.hbm.xml中class元素的table改为    table="[user]"

###############################################################################Struts+Spring+Hibernate/SSH整合开发详细二

SSH相关配置文件以及UserDao(系MyEclipse自动生成)整合示例请您阅读Struts+Spring+Hibernate/SSH整合开发详细一

/****************************************************struts-config.xml****************************************************/

xmlversion="1.0"encoding="UTF-8"?

>

DOCTYPEstruts-configPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration1.2//EN""http:

//struts.apache.org/dtds/struts-config_1_2.dtd">

--Struts配置文件中的元素配置时是有一定顺序的-->

  

   type="com.wuwei.struts.form.UserForm">

  

  

   type="com.wuwei.struts.action.ValidateUserAction"name="userForm">

   

   

  

--加上controller就不用再配置action的type属性了/或者说type属性不用改为

  type="org.springframework.web.struts.DelegatingActionProxy"-->

  processorClass="org.springframework.web.struts.DelegatingRequestProcessor">

  parameter="com.wuwei.struts.ApplicationResources"/>

  className="org.springframework.web.struts.ContextLoaderPlugIn">

  

   value="/WEB-INF/classes/applicationContext.xml"/>

--如下配置的话,就可以不在Action中配置type属性了-->

--

  

  value="org.springframework.web.struts.DelegatingRequestProcessor"/>

  -->

--配置一个插件去集成spring-->

--

  className="org.springframework.web.struts.ContextLoaderPlugIn">

  

  value="/WEB-INF/applicationContext.xml"/>

  -->

/*********************************************….hbm.xml************************************************/

xmlversion="1.0"encoding="utf-8"?

>

DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN"

"

--

   MappingfileautogeneratedbyMyEclipsePersistenceTools

-->

   

---->

   

       

           

           

       

       

           

       

       

           

       

   

/*******************************************************applicationConfig.xml**********************************************************/

xmlversion="1.0"encoding="UTF-8"?

>

//www.springframework.org/schema/beans"

xmlns:

xsi="http:

//www.w3.org/2001/XMLSchema-instance"

xsi:

schemaLocation="http:

//www.springframework.org/schema/beanshttp:

//www.springframework.org/schema/beans/spring-beans-2.0.xsd">

--数据源部分-->

  class="mons.dbcp.BasicDataSource">

  

   value="net.sourceforge.jtds.jdbc.Driver">

  

  

   value="jdbc:

jtds:

sqlserver:

//localhost:

1433/test">

  

  

  

--将Hibernate交由Spring管理(Hibernate相关配置信息),创建SessionFactory-->

  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

  

   

  

  

   

    

     

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2