`
zhangrong108
  • 浏览: 205873 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Struts2+hibernate+spring 整合

阅读更多

   Spring与Struts的整合其实就是把Struts的Action类交给Spring来管理,下面开始吧!

1)        导入jar包。在Struts2.1.6的lib目录中找到struts2-spring-plugin-2.1.6.jar,引入到工程中。


2)        配置web.xml文件。在web.xml中加入以下代码:

<listener>
      <listener-class>
          org.springframework.web.context.ContextLoaderListener
      </listener-class>
</listener>


1)        现在就来看如何把struts的action交给spring。以struts示例中的login.action为例,首先创建一个LoginAction类的Bean。在applicationContext.xml中增加如下代码:

<bean id="loginAction" class="test.action.LoginAction" scope="prototype">

</bean>

这里,我们把这个bean的id设为loginAction。Scope设为prototype,含义是每一次请求创建一个LoginAction类的实例,Scope还有另一个值“singleton”意为“单例模式”。

接下来修改struts.xml文件,把原来login.action的配置做如下修改:

把<action name="login" class=" test.action.LoginAction ">

改为

<action name="login" class="loginAction">

注意到有什么区别了吗?class值设为了loginAction,即LoginAction类的bean的ID。这样我们就把 LoginAction类交给了spring管理。至于具体是怎么处理的,秘密在struts2-spring-plugin-2.1.6.jar中,有空自己就去研究吧,现在会用就可以了。

5.4 整合Hibernate

       Spring整合Hibernate主要是对hibernate的Session进行管理,包含Session的创建、提交、关闭的整个生命周期。Spring对事务的管理应用了AOP的技术,配置前请先了解一下AOP的知识。

1)        配置sessionFactory,让spring来创建Session。在applicationContext.xml中增加如下代码:



<!-- 配置sessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
      <property name="configLocation">
          <value>classpath:spring/hibernate.cfg.xml</value>
      </property>  
</bean>  


       我们原来是用HibernateSessionFactory.java来创建Session的,现在删除即可,交给Spring创建。这里,创建了一个Session工厂类的Bean,其ID为“sessionFactory”。

2)        配置事务管理器。增加如下代码:

   <!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
      <property name="sessionFactory">
          <ref bean="sessionFactory"/>
      </property>   
</bean>


       这里创建了一个id为transactionManager的事务管理器,它匹配一个session工厂,<ref bean="sessionFactory"/>这个sessionFactory是指session工厂的ID。

3)        对事务管理器进行事务设置。增加如下代码:




<tx:advice id="smAdvice" transaction-manager="transactionManager">
      <tx:attributes>
          <tx:method name="save*" propagation="REQUIRED"/>
          <tx:method name="del*" propagation="REQUIRED"/>
          <tx:method name="update*" propagation="REQUIRED"/>
      </tx:attributes>
</tx:advice>


       这里创建了一个advice(通知),对事务管理器进行事务设置,这里意思是指,对于以save、del、update开头的方法应用事务。

4)        下面就把事务应用到具体的类。看如下代码:

<aop:config>
      <aop:pointcut id="smMethod"
expression_r="execution(* test.service.impl.*.*(..))"/>
      <aop:advisor pointcut-ref="smMethod" advice-ref="smAdvice"/>
</aop:config>


       这里配置的作用是把我们上面创建的advice应用到具体的类中。以上代码的意思指,给test.service.impl下的所有类的所有方法应用smAdvice。




     配置完毕
值得参考链接:http://www.cnitblog.com/intrl/archive/2010/01/15/56322.html
特别说明:
    1.因为slf4j-api-1.5.2.jar只有接口,还需要其实现类,而Hibernate带有的jar包中并没有包含,所以还需自己到apache网站下载

Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三slf4j-log4j12-1.5.2.jar
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三log4j-1.2.14.jar

两个jar包,一个是其实现,log4j-1.2.14.jar是slf4j-log4j12-1.5.2.jar所需要用到的jar包
2.在web.xml中配置过滤器,让Spring为我们自动管理session,无需我们手动开、关Hibernate中的session

Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三    <filter>
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三        <filter-name>hibernateFilter</filter-name>
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三        <filter-class>
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三            org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三        </filter-class>
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三    </filter>
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三    <filter-mapping>
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三        <filter-name>hibernateFilter</filter-name>
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三        <url-pattern>/*</url-pattern>
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三    </filter-mapping>

3、在web.xml中配置过滤器,处理字符集编码

Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三    <filter>
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三        <filter-name>encodingFilter</filter-name>
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三        <filter-class>
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三            org.springframework.web.filter.CharacterEncodingFilter
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三        </filter-class>
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三        <init-param>
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三            <param-name>encoding</param-name>
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三            <param-value>GBK</param-value>
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三        </init-param>
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三    </filter>
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三    <filter-mapping>
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三        <filter-name>encodingFilter</filter-name>
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三        <url-pattern>/*</url-pattern>
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三    </filter-mapping>

4、在上一步中我们用到了aop,Spring本身并没有对其实现,而是使用了现成别人已经做好了的。需要引入两个jar包,在Spring中的 lib\aspectj 目录下

Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三aspectjrt.jar
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合三aspectjweaver.jar
2
3
分享到:
评论

相关推荐

    Struts 2+Hibernate+Spring整合开发技术详解sample.pdf

    Struts 2+Hibernate+Spring整合开发技术详解sample.pdf

    Struts2+Hibernate+Spring整合开发技术详解19章网上书店完整源码

    Struts2+Hibernate+Spring整合开发技术详解19章网上书店完整源码(内附数据库导出文件) 与书上最后一章内容完全对应 可以结合书上教程进行最后一章学习

    Struts 2+Hibernate+Spring整合开发技术详解 12~17章

    这本由蒲子明编著的《Struts 2+Hibernate+Spring整合开发技术详解》深入探讨了如何将这三个框架有效结合,以构建高效、模块化的Web应用。书中第12到17章的内容涵盖了以下几个关键知识点: 1. **Struts 2框架**: -...

    Struts2+Hibernate+Spring整合开发深入剖析与范例应用03

    Struts2、Hibernate和Spring是Java企业级应用中三大核心框架,它们的整合使用能够构建出高效、可维护性高的Web应用程序。本篇将深入剖析这三者如何协同工作,并提供实际范例应用。 首先,Struts2作为MVC(模型-视图...

    Struts2+Hibernate+Spring整合开发深入剖析与范例应用02

    这个"Struts2+Hibernate+Spring整合开发深入剖析与范例应用02"的学习资源,很可能是关于这三大框架集成使用的详细教程或案例集。02这个文件名可能代表系列的第二部分,意味着它可能在前一部分的基础上进一步深入讲解...

    Struts2+Hibernate+Spring整合开发深入剖析与范例应用06

    在"Struts2+Hibernate+Spring整合开发深入剖析与范例应用06"中,我们可能涉及以下几个关键知识点: 1. **Struts2框架**:Struts2是一个强大的MVC框架,用于构建动态Web应用。它的核心是Action类,它处理HTTP请求并...

    struts2+HIbernate+Spring整合所需jar包

    总的来说,Struts2+Hibernate+Spring整合涉及多个jar包的配合使用,每个jar包都在整个应用程序架构中扮演着重要的角色。理解并正确配置这些jar包,能够帮助开发者构建出高效、可维护的Java Web应用。

    Struts 2+Hibernate+Spring整合开发技术详解随书源码18

    在"Struts 2+Hibernate+Spring整合开发技术详解"中,作者蒲子明深入讲解了如何将这三个框架有效地结合在一起。第18章可能涉及的是项目整合的高级话题或者特定场景的应用,由于文件名只给出了“第18章”,具体章节...

    Struts 2+Hibernate+Spring整合开发技术详解随书源码

    在"Struts 2+Hibernate+Spring整合开发技术详解"这本书中,作者蒲子明深入浅出地讲解了这三大框架的整合使用。随书源码包含第19至21章的内容,主要涉及的是实际项目中的两个应用场景:BBS论坛系统和Photo System照片...

    Struts2+Hibernate+Spring整合开发深入剖析与范例应用04

    在这个"Struts2+Hibernate+Spring整合开发深入剖析与范例应用04"的主题中,我们将探讨这三大框架的集成过程、关键概念以及实际应用。 首先,Struts2是基于MVC(Model-View-Controller)设计模式的Web框架,它负责...

    Struts2+Hibernate+Spring整合开发深入剖析与范例应用05

    在"Struts2+Hibernate+Spring整合开发深入剖析与范例应用05"的源码中,我们可以看到具体的配置文件(如struts.xml、spring-context.xml、hibernate.cfg.xml)、Action类、Service类、DAO类以及实体类等。通过对这些...

    Struts2+Hibernate+Spring整合教程

    整合过程中,通常会使用Spring来管理Struts2和Hibernate的bean,实现依赖注入。Action类可以在Spring容器中声明,通过@Autowired注解注入所需的Service层对象。Hibernate的SessionFactory和Transaction可以通过...

    struts2+hibernate+spring整合的管理系统

    Struts2、Hibernate和Spring是Java开发中三大主流框架,它们的整合应用在企业级Web应用开发中极为常见。这个管理系统就是基于这三个框架的集成,提供了高效、灵活且可维护的解决方案。 Struts2作为MVC(Model-View-...

    Java Web整合开发实战:基于Struts 2+Hibernate+Spring(PDF)

    Java Web整合开发实战--基于Struts 2+Hibernate+Spring.pdf 1章 Web的工作机制 2章 搭建Java Web开发环境 3章 JSP及其相关技术 2篇 表现层框架Struts技术 4章 Struts快速上手 5章 解密Struts之核心文件 6章 ...

    Struts2+Hibernate+Spring整合实例

    Struts2+Hibernate+Spring整合实例,登陆注册实例,简单来说,Spring通过IoC容器上管(Struts2)Action的创建并依赖注入给控制器,下管(hibernate)SessionFactory的创建并依赖注入给DAO组件,是一个巨大的工厂

    Struts2+Hibernate+Spring 整合示例

    **Struts2+Hibernate+Spring整合**: 整合这三个框架,主要是为了实现更高效的控制流、数据访问和事务管理。通常步骤如下: 1. **配置Spring**:创建Spring的配置文件(如applicationContext.xml),定义bean并声明...

    最新版本的Struts2+Spring4+Hibernate4框架整合

    整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...

    struts2+hibernate3.3+spring3.0整合实例

    Struts2、Hibernate3.3和Spring3.0是Java Web开发中著名的三大框架,它们分别负责MVC模式中的Action层、持久化层和依赖注入与业务逻辑管理。本实例将详细阐述如何将这三个框架整合在一起,实现一个完整的CRUD(创建...

    毕业设计-Struts2+Hibernate4.2+Spring3的SSH2高校协会管理系统 2

    毕业设计 基于SSH2高校协会管理系统,使用Struts2+Hibernate4.2+Spring3等JavaWeb框架完成高校协会管理系统

    struts2+hibernate+spring整合

    Struts2、Hibernate和Spring是Java开发中常用的三大框架,它们各自负责Web应用的不同层面:Struts2专注于表现层管理,...希望这个简要的整合教程能帮助你更好地理解和掌握Struts2、Hibernate和Spring的联合使用。

Global site tag (gtag.js) - Google Analytics