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

struts2+hibernate+spring2.5用properties集成整合配置方法

阅读更多
struts2+hibernate+spring2.5用properties集成整合配置方法
在一些项目中可能需要用properties代替hibernate.cfg.xml数据库相关配置, 可以简化管理, 方便维护或者用于动态属性加载. 首先SSH三大框架中的jar包导入到项目中, 接下来进行配置:

1.首先配置WEB.XML文件
        <!-- spring 配置 -->
 <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener> 
 <context-param>
     <param-name>contextConfigLocation</param-name>
     <param-value>classpath*:applicationContext*.xml</param-value>
 </context-param>
   
   <!-- struts2 配置 -->
 <filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
 </filter>
 
 <filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>

2.导入struts2-spring-plugin-2.1.6.jar包, 无需配置struts+spring即可集成使用
如果要动态调用ACTION中的方法, 请在struts.xml中配置:
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>

3.主要的applicationContext.xml文件配置:
现在<beans>标签中配置以下属性
① <beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

② 配置properties文件:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="locations">
   <value>classpath:system.properties</value>
  </property>
 </bean>

说明: <value>标签中的classpath:不能省略, 它代表是类环境根目录下, 也就是项目中SRC的目录底下去寻找
system.properties文件. 这是properties属性文件中的配置信息(根据实际信息进行修改):
#System Database Config
database.driverClassName=net.sourceforge.jtds.jdbc.Driver
database.connectionString=jdbc:jtds:sqlserver://10.1.0.6:1433/vendorDoc
database.username=sa
database.password=sql
hibernate.dialect=org.hibernate.dialect.SQLServerDialect

③ 配置SESSIONFACTORY
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <property name="mappingResources">
   <list>
    <value>cn/vendordoc/entity/DocRef.hbm.xml</value>
    <value>cn/vendordoc/entity/Staff.hbm.xml</value>
    <value>...</value>
   </list>
  </property>
  
  <property name="hibernateProperties">
   <props>
                            <prop key="hibernate.connection.driver_class">${database.driverClassName}</prop>
                             <prop key="hibernate.connection.url">${database.connectionString}</prop>
    <prop key="hibernate.connection.username">${database.username}</prop>
    <prop key="hibernate.connection.password">${database.password}</prop>

   <prop key="hibernate.dialect">${hibernate.dialect}</prop>
    <prop key="hibernate.show_sql">true</prop>
                           
   </props>
  </property>
 </bean> 

④ 配置事务特性:

 <tx:advice id="txAdvice" transaction-manager="transactionManager">
     <tx:attributes>
      <!-- <tx:method name="execute*" propagation="REQUIRED"/> -->
      <tx:method name="*"  propagation="REQUIRED"/>
       </tx:attributes>
  </tx:advice>

<!-- 配置那些类的方法进行事务管理 -->
    <aop:config>
     <aop:pointcut id="allManagerMethod" expression="execution (* cn.test..*.*(..))"/>
     <aop:advisor advice-ref="txAdvice" pointcut-ref="allManagerMethod"/>
     
    </aop:config>
说明: expression中的表达式意思是在cn.test包下的所有子包及类的所有方法都进行事务管理, 如果你项目中分有数据层, 则把数据层的包路径替换cn.test. 在项目中, 可能会有其他层例如WEB层调用数据库内容进行延迟加载, 这样会SESSION会报错,  解决的办法, 一, 增添lazy = false 属性; 二, 在web.xml中配置spring延迟加载
<!-- WEB层延迟加载,-->
<filter>
    <filter-name>hibernateFilter</filter-name>
    <filter-class>
     org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
    </filter-class>
</filter>
<filter-mapping >
    <filter-name>hibernateFilter</filter-name>
 <url-pattern>/forum/*</url-pattern>
</filter-mapping>

4. 你可以把struts的action交给spring管理, 或者直接调用也可以.
如果需要spring管理, 在applicationContext.xml文件中进行定义:
 <bean name="userAction" parent="baseAction" class="cn.vendor.web.action.UserAction" scope="prototype" >
 </bean>

然后在struts.xml中配置
<package name="user" extends="default" namespace="/user" >
  <action name="jumpLogin" class="userAction" method="loginView">
   <result>/WEB-INF/user/login.jsp</result>
  </action>
</package>

这样整个配置就已经完成了.
分享到:
评论

相关推荐

    struts2+hibernate3+spring2.5的完整框架

    Struts2、Hibernate3和Spring2.5是Java Web开发中的三大主流框架,它们的集成应用为开发者提供了高效、灵活的解决方案。这个"struts2+hibernate3+spring2.5的完整框架"是一个典型的MVC(Model-View-Controller)架构...

    struts2+hibernate3.2+spring2.5集成步骤

    在IT行业中,集成Struts2、Hibernate3.2和Spring2.5这三大框架是构建高效、可维护的企业级Web应用程序的常见选择。这三者分别负责MVC(Model-View-Controller)架构中的表现层、持久化层和业务逻辑层的管理。下面将...

    struts2+hibernate3.2+spring2.5集成方案

    【SSH集成】指的是将Struts2、Hibernate3.2和Spring2.5这三大主流Java Web框架进行整合,以构建高效、松耦合的企业级应用。这个集成方案旨在利用Struts2作为MVC(Model-View-Controller)框架处理前端请求,通过...

    java8+tomcat8+struts2.5+spring4.3+hibernate5.2框架搭建详细过程

    ### Java8 + Tomcat8 + Struts2.5 + Spring4.3 + Hibernate5.2 框架搭建详细过程 #### 一、环境配置与准备 在搭建一个基于Java8 + Tomcat8 + Struts2.5 + Spring4.3 + Hibernate5.2 的项目前,首先需要对开发环境...

    struts2.0+spring2.5+hibernate3.0整合框架,下载导入到eclipse下即可

    struts2.0+spring2.5+hibernate3.0整合框架,下载导入到eclipse下即可。。启动tomcat前先修改jdbc.properties文件。由于lib文件较大,所以请自行导入相关lib包。

    全套源码-论坛系统(Struts 2+Hibernate+Spring实现)

    【标题】:“全套源码-论坛系统(Struts 2+Hibernate+Spring实现)”揭示了一个基于Java技术栈开发的论坛系统,它整合了三个重要的框架:Struts 2、Hibernate和Spring。这个项目旨在提供一个完整的解决方案,帮助...

    truts2+hibernate3.2+spring2.5 proxool成步骤

    在构建企业级Java应用时,整合Struts2、Hibernate3.2和Spring2.5是一个常见的选择,因为这三个框架分别负责MVC模式的展现层、持久层管理和业务层的依赖注入。在这个过程中,使用Proxool作为数据库连接池能够有效地...

    struts1.2_hibernate3.2+spring2.5

    Struts1.2、Hibernate3.2和Spring2.5是Java Web开发中经典的MVC(Model-View-Controller)架构的三个核心组件,它们在2000年代中期到后期广泛使用,为构建企业级应用程序提供了强大的支持。这个压缩包文件显然包含了...

    Struts2+Spring+Hibernate 整合项目

    在整合SSH的过程中,配置文件的正确设置至关重要,如struts2的struts.properties、spring的applicationContext.xml以及hibernate的hibernate.cfg.xml,这些都需要根据实际环境进行调整。 最后,"SSH_TEST"可能是...

    Struts2.3+Hibernate4.1+Spring3.1 ssh整合 有说明

    在SSH整合中,Spring通常作为容器管理Struts2的Action和Hibernate的SessionFactory,通过配置文件或注解实现依赖注入。 在这个项目中,"Day17.doc"可能包含了项目介绍、步骤说明或者相关教程,帮助学习者理解如何...

    struts2+hibernate+spring整合

    在Java Web开发中,使用Struts2、Hibernate和Spring进行整合是一个常见的架构模式,它可以帮助开发者构建高效、模块化的应用。本篇文章将详细解析这一整合过程,以及如何解决整合过程中可能出现的问题,如"Error ...

    Struts 2.0 + Hibernate 3.2 + Spring 2.0 框架整合.doc

    Struts 2.0、Hibernate 3.2 和 Spring 2.0 是三个非常流行的开源框架,它们分别负责处理Web应用程序中的表现层、持久层和业务层。这三种框架的整合能够提供一个强大的、模块化的开发环境,提高开发效率并简化项目的...

    SSH的整合(Struts2+Spring2.5+Hibernate3.2)

    SSH整合是Java开发中一种常见的框架集成方式,它结合了Struts2、Spring和Hibernate三个开源框架,以提高Web应用的开发效率和可维护性。本文将深入探讨SSH整合的关键概念、配置步骤以及如何实现基本的数据操作功能。 ...

    Struts2+spring2+hibernate3整合方案

    - **配置Struts2**:建立`struts.xml`和`struts.properties`文件,`struts.xml`定义Action及其结果页面,`struts.properties`配置Struts2的行为,如开启动态方法调用和设置对象工厂为Spring。 - **编写Action**:...

    struts2+hibernate+spring

    ### Struts2 + Hibernate + Spring框架整合详解 在软件开发领域,尤其是Java Web应用开发过程中,集成多种技术栈是常见的需求。本篇文章将基于提供的`struts2+hibernate+spring`标题、描述和部分代码片段,深入探讨...

    解决struts2.1.6+spring+hibernate 中文乱码

    - **struts.objectFactory = spring**:此配置项指定了Struts2使用Spring容器管理Action对象的生命周期。 - **struts.i18n.reload=true**:该配置项开启国际化资源文件的热加载功能,即当资源文件发生变化时,无需...

    struts2+hibernate+spring_jar包整合

    Struts2、Hibernate和Spring是Java Web开发中的三大框架,它们各自在不同的层面提供了解决方案,而将它们整合在一起可以构建出强大的企业级应用。本文将深入探讨这三者的核心概念、整合过程以及可能遇到的问题。 ...

Global site tag (gtag.js) - Google Analytics