1 可恶的myeclipse     为了开发方便,我选择了myeclipse,因为它集成了很多框架,而不致于自己去倒入很多lib。但就是因为这一点,成了我这次组合的致命伤。SSH因为其是开源框架,自然需要倒入很多lib,而且他们各自为政,结果就导致了lib之间的冲突。当我自启动tomcat时,总是报错 org.hibernate.MappingException: Unknown entity:我还以为是自己映射没有做好。但是映射是myeclipse自带工具映射的,我也检查了很多次,因该没有问题。于是百度了下,帖子很多,可就是没有解决实际问题的。折腾了几个小时,还是没有搞定,都想放弃了睡觉了,可是就因为这个问题没有解决睡不着,有爬起来google。最后皇天不负有心人,终于解决了这个问题,但是我也差点吐血。原来是倒入的包有问题,asm-3.这个包删除掉,就ok了。无语!!不过还是得感谢那位无名的大哥,大家把自己的成果分享出来确实不错。

2 web.xml 在web配置文件中,加入以下内容。

<context-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>/WEB-INF/action-servlet.xml /WEB-INF/applicationContext.xml</param-value>
      </context-param>
  
      <listener>
           <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
       </listener>

<servlet>
           <servlet-name>action</servlet-name>
           <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    </servlet>
    <servlet-mapping>
          <servlet-name>action</servlet-name>
          <url-pattern>*.do</url-pattern>
    </servlet-mapping>

3 struts-conf.xml   spring 对struts的支持有3种模式,分别是代理模式,控制器继承和插件模式,这里我选用控制器模式。即不再使用struts原有的controller处理器,而采用spirng的controller处理器,实际上spring的处理器继承了struts.所以我说它是继承模式。修改的struts如下

<controller>
                    <set-property property="processorClass"    value="org.springframework.web.struts.DelegatingRequestProcessor"/>
             </controller>     如果有需要,我们自己也可继承这个处理器,添加自己的方法。配置好处理器后,struts的action配置,其中type可要可不要。

<action
      attribute="loginForm"
      input="/login.jsp"
      name="loginForm"
      path="/login"
      scope="request"
      type="com.tlb.web.action.LoginAction" >
      <forward name="success" path="/view/music/listMusic.jsp"></forward>
    <forward name="failure" path="/error.jsp" ></forward>
      </action>

applicationContent.xml文件中的bean的name属性一定要和action的path的名称相同

<bean name="/login" class="com.tlb.web.action.LoginAction" scope="prototype" autowire="byName">
         <property name="service" ref="service"></property>
     </bean>

就这样struts的action便可以使用spring的IOC特性了。

4 spring集成hibernate 首先看看配置文件

<bean name="dataSource" class="org.apache.commons.dbcp.BasicDataSource" >
                  <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
                  <property name="url" value="jdbc:mysql://localhost:3306/music"/>
                <property name="username" value="root"/>
                  <property name="password" value="admin"/>
    </bean>
    
<bean name="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource">
           <ref bean="dataSource"/>
        </property>     
       <property name="mappingResources">
         <list>
           <value>com/tlb/db/domain/User.hbm.xml</value>
           <value>com/tlb/db/domain/Song.hbm.xml</value>
         </list>
       </property>
       <property name="hibernateProperties">
          <props>
             <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
             <prop key="hibernate.show_sql">true</prop>
          </props>
       </property>
    </bean>

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
      <property name="sessionFactory" ref="sessionFactory"/>
    </bean>

<bean name="userDao" class="com.tlb.db.dao.UserDao">
       <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>

配置好后,我们就可在DAO中调用sessionFactory进行各种操作。不再需要自己写一大堆数据库的共通类。HibernateDaoSupport 提供了丰富的方法,足够我们使用。而且由于spring对异常的封装机制,我们的程序代码,再也不需要很多的try catch 了。

public class UserDao extends HibernateDaoSupport implements IUserDao {

public void insUser(User user) throws DataAccessException {
   // TODO Auto-generated method stub
   this.getHibernateTemplate().save(user);
}

}

SSH的整合工作就几乎结束了,各自发挥自己的功能。虽然介绍的不详细,不过也算是自己的笔记,自己的心得罢了。

整合spring2 + struts1.2 + hibernate3.2 .的更多相关文章

  1. [转载]Struts2.1.6+Spring2.5.6+Hibernate3.3.

    原文地址:Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一)(转载大象)作者:沉睡森林  在JavaEE企业级开发中,以SSH2框架为核心的应用非常广,大 ...

  2. struts1.3整合spring2.5(将spring委托给struts方式)

    前提是配置完struts1.3 导包 spring-2.5.6.jar //spring核心包 spring-webmvc-struts-2.5.5.jar //struts整合spring使用 lo ...

  3. hibernate3整合spring2时hibernate即用注解又用配置文件情况时spring配置文件的配置写法

    hibernate只用注解时,spring的配置文件的配置如下 <bean id="dataSource" class="org.apache.commons.db ...

  4. SSH整合(struts2.3.24+hibernate3.6.10+spring4.3.2+mysql5.5+myeclipse8.5+tomcat6+jdk1.6)

    终于开始了ssh的整合,虽然现在比较推崇的是,ssm(springmvc+spring+mybatis)这种框架搭配确实比ssh有吸引力,因为一方面springmvc本身就是遵循spring标准,所以 ...

  5. Eclipse建筑物SSH(struts-2.2.3 + spring-2.5.6 + hibernate-3.6.8)相框-随着源代码

    一直想自己搭建一个ssh框架,这次因为编写demo的须要,就亲手搭建了一下,并逐步測试!以下进入正题: 创建Struts项目 整合步骤: 1,在Eclipse中创建一个DynamicWeb Proje ...

  6. spring2.5与hibernate3升级后的bug

    手头有一个项目,使用的是struts2 hibernate3 spring2.5 是之前的老项目了,spring与hibernate的版本都比较低 自己看了最新的spring4与hibernate4, ...

  7. struts2.1.8 spring2.5.6 hibernate3.3G 依赖jar包

    ----struts2.1.8---- struts2-core-2.1.8.1.jar struts2核心包 struts2-json-plugin-"} struts2-spring-p ...

  8. ssh框架整合-NoClassDefFoundError-NoSuchMethodError-遁地龙卷风

    (-1)写在前面 spring2.0.struts1.2.hibernate3.0.myeclipse8.5.tomcat6.0,整合之中出现了很多问题,前几天忙着整理毕业论文的资料,时间腾出来了,总 ...

  9. Struts2-Spring和Hibernate整合

    Struts作为MVC 2的Web框架,自推出以来不断受到开发者的追捧,得到广泛的应用.作为最成功的Web框架,Struts自然拥有众多的优点:MVC 2模型的使用.功能齐全的标志库(Tag Libr ...

随机推荐

  1. MrHuo.OAuthLoginLibs社会化登录组件Github

    今日写的博客 [原创]旧事重提:只配置参数实现OAuth2登录 引来很多园子里的朋友问候,所以今日花了一些时间整理了代码. 现已发布至github: MrHuo.OAuthLoginLibs:http ...

  2. HTTP 协议简介

    HTTP 协议简介 博客分类: acl开发--HTTP协议篇 网络协议http协议  一.TCP/IP 协议介绍 在介绍 HTTP 协议之前,先简单说一下TCP/IP协议的相关内容.TCP/IP协议是 ...

  3. Android手机配置gcc,实现手机编译代码

    1.下载gcc.zip 2.把gcc.zip解压存放在/data目录下(也可以是其他目录,看个人习惯) 3.配置gcc环境变量 export GCCHOME=/data/gcc (gcc存放路径) e ...

  4. PowerShell_零基础自学课程_1_初识PowerShell

    欢迎转载本系列文章:转载请注明出处:www.cnblogs.com/volcanol 自从微软推出.Net以来,微软旗下的windows体系就发生了很大的变化,首先是操作系统的界面的变化,例如vist ...

  5. Java反编译插件jad

    原文地址:http://www.cnblogs.com/JimLy-BUG/p/5405868.html 1.首先下载jar文件:net.sf.jadclipse_3.3.0.jar  下载   2. ...

  6. 定位于定位优化(iOS)

    定位于定位优化 1.定位的方案 最近在做项目, 遇到了一个问题就是如何让iOS7~~iOS9的定位.因为项目需求只是需要获取用户所在的城市, 而不用十分具体详细的精确定位, 服务端考虑用区号, 作为标 ...

  7. Linux权限管理(笔记)

    权限管理:r: w:x: 三类用户:u: 属主g: 属组o: 其它用户 chown: 改变文件属主(只有管理员可以使用此命令)# chown USERNAME file,...    -R: 修改目录 ...

  8. 【转】TI-Davinci开发系列之六CCS5.2调试Linux内核

    上转博文<TI-Davinci开发系列之五CCS5.2使用gdbserver远程调试应用程序> 使用CCS5.2远程调试内核时,只需导入Linux内核源码,而不需要编译内核,也就不会用到交 ...

  9. input表单 radio对象的判断选择

    /*选择约见对象*/ var lenth=$('input[name="single"]').length; var len=0; $('input[name="sing ...

  10. 平时的笔记04:处理stagger模块

    #! /usr/bin/env python3 # # __init__.py # From the stagger project: http://code.google.com/p/stagger ...