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. mysql(mariadb)重装

    MariaDB是MySQL的一个分支,主要由开源社区进行维护和升级,而MySQL被Oracle收购以后,发展较慢.在CentOS 7的软件仓库中,将MySQL更替为了MariaDB.  Centos  ...

  2. 图铭Android平台银行卡号识别系统

    随着智能终端(智能手机及平板电脑)及移动通信(3G)的发展,原来运行在PC上的信息系统(如邮件系统.即时通信.网页浏览.协同办公.网络购物.社交网站.博客等)逐渐转移到智能终端设备上.可以预见未来几年 ...

  3. yii开启gii功能

    如果不想面对黑白界面,那么yii框架,给我们提供了一个模块gii 在配置文件中main.php 再通过访问模块的方式访问gii

  4. TOMCAT之性能跟踪入门

    先扫清前面的障碍,再慢慢进入核心 转一下网上的我关心的话题,实施起来 ~~~ 使用Nginx作为反向代理时,Tomcat的日志记录的客户端IP就不在是真实的客户端IP,而是Nginx代理的IP.要解决 ...

  5. Keil C51处理可重入函数问题的探讨

    在程序设计中,变量具体可以分为四种类型:全局变量.静态全局变量.局部变量.静态局部变量.这几种变量类型对函数的可重入产生的重大的影响,因为不同的编译器采用不同的策略. 针对51的存储区有限,keil ...

  6. linux操作系下RAR的使用

    ============zip文件的操作================================== zip -r data.zip data 解释:将data文件夹压缩成了data.zip格 ...

  7. ubuntu 16.04 Ubuntu 安装GDebi,从而安装deb文件

    其实在ubuntu直接双击deb文件就能安装,可是我现在装了ubuntu 16.04后,发现谷歌浏览器的deb和搜狗输入法的deb都不能直接双击安装,有点小问题. 但是安装GDebi软件后,直接在终端 ...

  8. poj 3685 Matrix(二分搜索之查找第k大的值)

    Description Given a N × N matrix A, whose element × i + j2 - × j + i × j, you are to find the M-th s ...

  9. 第六百二十一天 how can I 坚持

    好歹都是一些集成的框架,也懒得去深入研究了,微信小程序,今天体验了一个,虽然内心非常相信张小龙,但是还是不太看好,但是感觉确实需要一种方式去简化应用程序的开发,今天把没用的app都删了,太耽误时间了, ...

  10. HDU 1248 寒冰王座(全然背包:入门题)

    HDU 1248 寒冰王座(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票 ...