`
aa00aa00
  • 浏览: 331403 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
文章分类
社区版块
存档分类
最新评论

struts+spring+hibernate配置心得

阅读更多
使用ssh架构搭建的用户登陆系统,实现了树形结构和基于ajax的dwr的验证,并且能够进行相应的CRUD操作.

    作者:徐浩
   
关于SSH机构的整合:(知己整理的)

先说明一下整合的顺序:

个人认为(一般也是这样整合的):1.struts;2.spring;3.hibernate.事实证明,这样一个整合的顺序,也是非常的科学的,出错的几率也小.

下面开始详细的开发步骤:
(1)先添加struts框架,设置相应的包,我这里的设置为com.wuwei.struts(这个包的名字可以随便写).
(2)建立相应的jsp文件(我这里建立了3个jsp文件)
1 login.jsp(登陆用的)
2 ok.jsp(登陆成功的页面)
3 error.jsp(出错的页面)
配置ActionForm(我这里配置的ActionForm为LoginForm类)
配置Action(我这里的配置为LoginAction类)

到现在为止Struts已经开发完毕.

接下来开发spring
(1)添加spring框架(和添加struts框架一样)

最后配置Hibernate(由于是spring整合hibernate,所以hibernate中的sessionFactory,就不用配置了,已经将他交给spring进行管理了).
进行相应的镜像文件的生成(生成的文件为Users.java,UsersDAO.java以及Users.hbm.xml文件).


到现在,3个框架已经整合到一起了.
还要进行相应的配置工作(就是struts_config.xml和spring的applicationContext.xml文件和web.xml,3个文件的配置工作).

Struts和spring的整合
要在struts的配置文件Struts_config.xml文件中,进行如下的配置(一般放在配置文件的最后)
<plug-in
       className="org.springframework.web.struts.ContextLoaderPlugIn">
       <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
</plug-in

第二,修改struts-config.xml中action节点的配置信息,将原来定义的
<action
      attribute="loginForm"
      name="loginForm"
      path="/login"
      scope="request"
      type="com.wuwei.struts.action">
      <forward name="success" path="/ok.jsp" />
      <forward name="fail" path="/error.jsp" />
    </action>
    中的type改为: type="org.springframework.web.struts.DelegatingActionProxy">
    配置好后,struts的action,已经交由给spring进行管理了,真正的type已经做为spring的bean,
    在spring的applicationContext.xml文件中进行配置了,充分使用了spring的IOC的依赖注入的
    功能,进行Bean名称,全程,和属性的配置,这种配置的好处就是,不用硬编码的方式进行工作,只需在spring
    的配置文件中,进行相应Bean的配置.一般的顺序是:sessionFactory->DAO->service->Action,进行注入.
   
   
    一定要注意:struts中的path和spring的bean name属性一致(重要)
    入本配置中的struts中的path为/login,spring中的<bean name="/login,二者一定要一致.

最后将spring和hibernate整合
在spring的配置文件中,进行hibernate的sessionFactory的配置工作,dao的设置的工作.
具体文件为:
<bean id="usersDAO" class="com.wuwei.struts.dao.UsersDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
这里的usersDAO,要在LoginAction文件中进行申明,如下:
private UsersDAO usersDAO;
并且设置相应的get和set方法.
最后,将usersDAO,注入给Action(/login)即可
这是一个比较简单的例子.

实际中,还要有service层(即使业务层,由spring进行处理)
在spring的配置文件的注入顺序如下:
(1)配置相应的数据源(如连接数据库的驱动,url连接字符串,name连接数据库的用户名,pwd连接数据库的密码).
(2)设置sessionFactory(将dataSource注入,配置相应生成的.hbm.xml镜像文件).
(3)将dao注入给sessionFactory
(4)将service注入给dao
(5)将action注入给service.
(6)定义事务管理;
(7)定义事务管理拦截器
(8)定义代理自动管理事务
(9)调用事务管理拦截器.

整合发布时,出现的错误:
1. java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor

解决方案:

在使用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

                徐浩   2009-06-07 沈阳
分享到:
评论

相关推荐

    基于ssh开发的实例代码(spring+struts+hibernate)

    此为我本人对SSH(spring+struts+hibernate)学习之后的心得,自己写的一个简单的基于SSH(spring+struts+hibernate)框架开发的小例子,里面有完成的源码,简单易懂,适合初学者。希望大家共同学习!

    struts+spring+hibernate 整合笔记

    本文档旨在记录在特定版本环境下(JDK5.0、JBoss4.0.4GA、Spring2.5、Hibernate3.1、Struts1.2)使用Spring、Hibernate与Struts进行整合的心得体会,以便于更好地理解和掌握这种技术架构。 #### 技术选型与环境配置...

    基于Struts+Spring+hibernate的网上书店购物车

    ### 基于Struts+Spring+Hibernate的网上书店购物车 #### 1.1 系统概述 ##### 1.1.1 主要功能 本文档介绍的是一个基于Struts+Spring+Hibernate架构实现的网上书店购物车系统。该系统主要功能包括用户管理、商品管理...

    轻量级 J2EE 企业应用实战:Struts+Spring+Hibernate 整合开发(二)

    学习Spring Struts Hibernate 整合开发必看的书

    Spring+struts2+hibernate框架整合

    在实际部署时,开发者需要按照一定的步骤设置项目结构,配置各个框架的XML配置文件,例如Spring的 applicationContext.xml,Struts2的struts.xml,以及Hibernate的hibernate.cfg.xml。然后,将SQL脚本导入数据库,...

    博客系统(struts+hibernate+spring).rar

    这个"博客系统(struts+hibernate+spring).rar"压缩包文件包含了一个使用三大热门Java框架——Struts、Hibernate和Spring构建的博客平台的源代码。下面我们将详细探讨这三个框架及其在构建博客系统中的作用。 **...

    (3.0版本)自己写的struts2+hibernate+spring实例

    外加一些关于struts2和hibernate的技巧心得整理. 说一下这次3.0更新的内容.可能大家在我的博客里面已经看到了相关的日志.我懒.下面就把那个日志抽出来当说明了啊.有兴趣的就下载下来瞅瞅.偶也是菜鸟的.写的不好不要...

    基于struts2、spring、hibernate构建一个网上投票系统—-毕业论文设计.doc

    《基于Struts2、Spring、Hibernate构建一个网上投票系统》的毕业论文设计主要涉及了JavaEE平台下Web应用开发的核心技术。这篇论文旨在利用Struts2作为MVC框架,Spring作为依赖注入容器,以及Hibernate作为持久层框架...

    struts2学习心得

    2. **与Hibernate和Spring的集成**:虽然Struts2可以独立运行,但它通常与Hibernate(数据持久化框架)和Spring(企业级应用框架)结合使用,共同构建企业级Web应用。Struts2与这些框架的集成可以实现数据访问、业务...

    spring使用心得 java ssh

    SSH(Spring、Struts、Hibernate)是Java Web开发的经典组合,这个压缩包中包含了一些关于Spring在实际使用过程中的心得和常见问题的解决方案。 首先,"spring的事务代理.txt"可能涉及到Spring的事务管理。Spring...

    使用三大框架ssh+mysql基础web案例

    在"使用三大框架SSH+mysql基础web案例"中,我们可以学习到如何配置SSH框架,包括Struts的配置文件(struts.xml)、Spring的配置文件(spring-context.xml)以及Hibernate的配置文件(hibernate.cfg.xml)。同时,还会涉及...

    SSH整合心得01

    在Java Web开发中,SSH(Struts2、Spring、Hibernate)是常用的三大框架,它们各自负责不同的职责:Struts2作为MVC框架处理请求和响应,Spring提供依赖注入和事务管理,Hibernate则作为ORM工具管理数据库操作。...

    基于hadoop的web云盘系统

    这是一个基于hadoop的云盘系统,实现的界面是用javaweb完成的,使用的是spring Struts2 hibernate集合框架,配有sql文件。直接导入后运行这是一个基于hadoop的云盘系统,实现的界面是用javaweb完成的,使用的是...

    SSH框架配置

    MyEclipse5.5 作为集成开发环境,JDK 1.6 作为 Java 开发工具包,Java EE 5.0 作为 Java 企业版,Tomcat6.0 作为 Web 服务器,Struts2.1.6 作为 Web 应用程序框架,Spring2.5.6 作为应用程序框架,Hibernate3.3.1 ...

    SSH辅助教学系统jsp开发语言mysql数据库myeclipse设计java编程

    JSP SSH辅助教学系统 是一套完善的WEB设计系统(struts2+spring+hibernate),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 二、功能介绍 系统主要有三类用户角色...

    Spring和Struts框架学习总结

    - **数据访问与集成**:Spring框架提供了一套简洁的数据访问抽象层,支持多种持久化技术,如JDBC、Hibernate、JPA等,并且为这些技术提供了统一的异常处理模型,大大简化了数据访问层的开发。 - **事务管理**:...

    java程序员实习日记.pdf

    5. **技术学习与实践**:实习生通过观看视频教程学习了Struts+Spring+Hibernate的整合使用,虽然理论学习很过瘾,但在实际编码时仍面临挑战,比如理解和应用各种文档和指南,以及处理英文资料带来的困难。...

    ssh开源框架日志心得.pdf

    SSH开源框架日志心得主要涵盖了Struts2、Spring和Hibernate这三个核心组件的集成与使用,以及Spring的装配策略和单例、多例模式的应用。以下是这些知识点的详细说明: 1. **Filter、Interceptor、AOP**: 这三个...

    SSH整合流程(个人总结,仅供参考)

    4. **项目创建与配置**:创建一个Web项目后,按照步骤导入Struts2、Spring和Hibernate的库。在配置Spring时,选择existing Spring,避免自动生成SessionFactory,因为通常我们希望Spring来管理SessionFactory。 5. ...

Global site tag (gtag.js) - Google Analytics