`
zhukejohn
  • 浏览: 4635 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

整合spring2 + struts1.2 + hibernate3(转载)

阅读更多
好久没有做过java的项目了,关于java的技术也就显得生疏了。于是便跑到java社区逛了逛,其中有个目前各种framework的调查,struts作为经典的MVC框架还是遥遥领先,45%左右,而spring和habernate便是以绝对的优势压倒群雄,分别在80%以上,显然2008还是SSH的天下,于是乎,我重温旧梦,再次对其整合。

     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的整合工作就几乎结束了,各自发挥自己的功能。虽然介绍的不详细,不过也算是自己的笔记,自己的心得罢了。
分享到:
评论
1 楼 songjoyce 2008-09-27  
   ,谢谢,谢谢大哥,我都为此问题翻看了2天网上提示,只有你的答案适合我,谢谢 

相关推荐

    Struts1.2+Spring1.2+Hibernate3.0企业人力资源管理系统

    《Struts1.2+Spring1.2+Hibernate3.0构建的企业人力资源管理系统详解》 在JavaEE领域,Struts、Spring和Hibernate是三个极为重要的框架,它们共同构成了经典的MVC(Model-View-Controller)架构,为企业级应用开发...

    Spring1.2+Struts1.2+hibernate3.1 整合包

    Spring1.2+Struts1.2+hibernate3.1 整合包

    Spring 2.0 + Struts 1.2 + Hibernate 3.2 + DWR 2.0 的JavaEE应用示例

    该示例使用MyEclipse 5.5 IDE用来整合四个技术(Struts 1.2, Spring 2.0, Hibernate 3.2和Ajax技术)的轻量级的JavaEE。 操作步骤如下: 1. 下载并解压之后,使用MyEclipse导入工程 2. 找到demo目录中的.sql数据库...

    spring2.0+struts1.2+hibernate3

    提供的"spring2.0和struts1.2和hibernate3集成环境配置指导.doc"文档应该包含了详细的步骤和示例代码,对于初学者来说是非常宝贵的资源。"spring_test.sql"可能包含了一些测试数据的SQL脚本,用于初始化数据库。最后...

    Struts1.2+Spring1.2+HIbernate3.1整合示例代码

    Struts1.2+Spring1.2+HIbernate3.1整合一个用户登录的例子,原以为这个很简单没有必要上传上去,但问我的人太多了,所以就发布上来了,我随后会在博客里做详细的介绍,请大家继续关注我的博客.

    SSH整合jar包(eclipse3.2 + myeclipse5.5 + Struts1.2 + Hibernate3.1 + Spring2.0测试通过)

    其实一看异常类型根本就不是自己书写的代码出了问题,而是MyEclipse所提供的jar包有问题,很容易出现jar包冲突问题,本SSH整合jar包是经过 eclipse3.2 + myeclipse5.5 + Struts1.2 + Hibernate3.1 + Spring2.0测试通过...

    Struts1.2+Spring2.5+Hibernate3.2框架搭建(一)

    4. 整合Spring和Hibernate:在Spring中配置Hibernate的SessionFactory Bean,使用HibernateTemplate或JdbcTemplate进行数据访问。 5. 测试和运行:通过JUnit进行单元测试,确保各层功能正常,然后部署应用,测试...

    SSH整合实例教程Struts1.2 + hibernate3.1 + spring2.0

    eclipse整合Struts1.2 + hibernate3.1 + spring2.0 相关链接:http://blog.csdn.net/shellwin/archive/2010/07/02/5708865.aspx

    Struts 1.2+Hibernate3.3+Spring3.0整合详细步骤+源码

    3. **添加依赖**:在pom.xml或build.xml中添加Struts 1.2、Hibernate 3.3、Spring 3.0以及它们的依赖库。 4. **配置Struts**:编写struts-config.xml文件,定义Action、ActionForward和Form Bean。同时,需要在web....

    hibernate3.2+struts1.2+spring2.5整合源码带数据库表结构

    本项目提供了"hibernate3.2+struts1.2+spring2.5"的整合源码,旨在帮助开发者理解并实践这三者如何协同工作,实现一个完整的MVC(Model-View-Controller)架构的Web应用程序。 Hibernate是Java中的一个持久化框架,...

    struts1.2+hibernate3.2+spring2.5+dwr

    Struts1.2、Hibernate3.2、Spring2.5 和 DWR2.0 是一组经典的Java企业级开发框架组合,它们在Web应用程序开发中扮演着重要的角色。这些框架的集成为开发人员提供了强大的功能,使得后端数据管理、业务逻辑处理以及...

    OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR)

    这个系统采用了经典的Java技术栈,包括Struts1.2、Hibernate3.0、Spring2以及DWR,这些都是Java开发中的核心框架。 Struts1.2是MVC(Model-View-Controller)设计模式的实现,它在Web应用中负责处理请求、控制业务...

    Hibernate3.1+Struts1.2+Spring2.5整合小项目

    在Java EE应用开发中,SSH(Struts、Spring、Hibernate)框架的整合是常见的技术实践,这个名为" Hibernate3.1+Struts1.2+Spring2.5整合小项目 "的示例提供了如何将这三个组件集成到一个小型应用程序中的教程。...

    struts1.2+spring2.0+hibernate3.1框架整合实例

    采用在web.xml中加载spring配置文件的方法降低struts和spring的耦合度,使用自定义的MyDelegatingRequestProcessor类来代替spring的DelegatingRequestProcessor类来解决spring中action的bean的重复配置问题。...

    用户登录(Struts1.2+Spring2.5+Hibernate3.2)

    1、可以运行(发布后,删除\Tomcat 6.0\webapps\ssh\WebRoot\WEB-INF\lib下的asm-2.2.3.jar) 2、采用Struts1.2 + Spring2.5 + Hibernate3.2 整合开发 3、SSH入门级实例

    struts1.2+spring+hibernate 简单的实现

    这个项目"struts1.2+spring+hibernate 简单的实现"旨在展示如何整合这三个框架,实现单表和多表的维护,并且包含了一个简单的Excel报表生成功能。 首先,Struts1.2是MVC(模型-视图-控制器)架构模式的一种实现,它...

    OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR).zip

    OA办公自动化管理系统是一款基于Java技术的典型企业级应用,它采用了经典的SSH框架组合,即Struts1.2、Hibernate3.0和Spring2。这些框架是Java Web开发中的重要工具,帮助开发者构建高效、可维护的业务逻辑。下面将...

    Struts2.0+Spring2.0+Hibernate3.1登录及增删改查的完整演示示例

    应广大网友需求,自己抽了点时间写了一个Struts2.0+...不好意思,忘记上传数据库脚本了,数据库脚本大家可以下载我的Struts1.2+Spring1.2+Hibernate3.1的示例中已经有了,大家可以下载这个,这个与现在的数据库脚本是一样的.

Global site tag (gtag.js) - Google Analytics