首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

struts+spring+hibernate调整

2012-11-07 
struts+spring+hibernate整合本文基于Struts1.3.10+Spring2.5.6+Hibernate3.3.2一、下载相关jarStruts:stru

struts+spring+hibernate整合

本文基于Struts1.3.10+Spring2.5.6+Hibernate3.3.2

一、下载相关jar

Struts:struts.apache.org

Spring:www.springsource.org/download

Hibernate:www.hibernate.org/downloads

?

二、搭建环境

1、struts需要的jar

(1)必需的jar

struts-core-1.3.10.jar,struts-extras-1.3.10.jar,struts-taglib-1.3.10.jar,antlr-2.7.2.jar,commons-beanutils-1.8.0.jar,commons-chain-1.2.jar,commons-digester-1.8.jar,commons-logging-1.0.4.jar

(2)文件上传需要的jar

commons-fileupload-1.1.1.jar,commons-io-1.1.jar

(3)验证时需要的jar

commons-validator-1.3.1.jar

2、Spring需要的jar

spring.jar,spring-webmvc-struts.jar,slf4j-api-1.5.0.jar,slf4j-log4j12-1.5.0.jar,log4j-1.2.15.jar,commons-dbcp.jar,commons-pool.jar

3、Hibernate需要的jar

hibernate-distribution-3.3.2.GA-dist.zip中的以下jar

hibernate3.jar,lib\required文件夹下的所有jar(其中antlr-2.7.6.jar与struts中的antlr-2.7.2.jar冲突,建议选择高版本)

?

三、在web.xml中对Spring容器和Struts进行实例化

??? <context-param>
?? <param-name>contextConfigLocation</param-name>
?? <param-value>classpath*:\config\**\*applicationContext.xml,classpath*:\config\**\*applicationContext-*.xml,classpath*:**\applicationContext.xml,classpath*:**\*-applicationContext-*.xml</param-value>
?</context-param>
?<!-- 对Spring容器进行实例化 -->
?<listener>
??<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
?</listener>
???
?<servlet>
??<servlet-name>struts</servlet-name>
??<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
??<init-param>
???<param-name>config</param-name>
???<param-value>/WEB-INF/config/struts-config.xml</param-value>
??</init-param>
?</servlet>
?<servlet-mapping>
??<servlet-name>struts</servlet-name>
??<url-pattern>*.do</url-pattern>
?</servlet-mapping>

?

四、spring配置数据源,配置模板如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
?????? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
?????? xmlns:aop="http://www.springframework.org/schema/aop"
?????? xmlns:tx="http://www.springframework.org/schema/tx"
?????? xmlns:context="http://www.springframework.org/schema/context"
?????? xsi:schemaLocation="http://www.springframework.org/schema/beans
?????????????????????????? http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
?????????????????????????? http://www.springframework.org/schema/tx
?????????????????????????? http://www.springframework.org/schema/tx/spring-tx-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/context
?????????????????????????? http://www.springframework.org/schema/context/spring-context-2.5.xsd">
??????????????????????????
?<!-- 采用单一元素属性占位符的方式配置数据源 -->????????????????????
?<context:property-placeholder location="classpath:config/jdbc.properties"/>

?<bean id="dataSource" destroy-method="close">
???? <property name="driverClassName" value="${jdbc.driver}"/>
???? <property name="url" value="${jdbc.url}"/>
???? <property name="username" value="${jdbc.username}"/>
???? <property name="password" value="${jdbc.password}"/>
??? </bean>
???
??? <bean id="sessionFactory" ref="dataSource"/>
?????
???? <!-- 指定映射文件存放的文件夹 -->
???? <property name="mappingLocations">???
?????? <value>classpath*:/**/*.hbm.xml</value>
???? </property>
??
???? <!-- 指定映射文件
???? <property name="mappingResources">
???????? <list>
??????????? <value>config/hbm/Employee.hbm.xml</value>
??????????? <value>config/hbm/Department.hbm.xml</value>
?????????? ?<value>config/hbm/EmployeeDepartment.hbm.xml</value>
???????? </list>
???? </property>
???? -->
??
??<property name="hibernateProperties">
???<props>
????<prop key="hibernate.dialect">${hibernate.dialect}</prop>
????<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
????<prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
???</props>
?? ?</property>
?? ?
?? ?<!-- 映射hibernateProperties属性的简写方式
?? ?<property name="hibernateProperties">
???????? <value>
????????? hibernate.dialect=${hibernate.dialect}
????????? hibernate.show_sql=${hibernate.show_sql}
????????? hibernate.format_sql=${hibernate.format_sql}
???????? </value>
???? </property>
???? -->
?</bean>
?
? ?<!-- JDBC事务代理? -->
? ?<bean id="jdbcTransactionManager" ref="dataSource"/>
? ?</bean>
?<bean id="jdbcTransactionProxy"
??ref="jdbcTransactionManager"/>
??<property name="transactionAttributes">
???<props>
????<prop key="add*">PROPAGATION_REQUIRED</prop>
????<prop key="save*">PROPAGATION_REQUIRED</prop>
????<prop key="insert*">PROPAGATION_REQUIRED</prop>
????<prop key="update*">PROPAGATION_REQUIRED</prop>
????<prop key="delete*">PROPAGATION_REQUIRED</prop>
????<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
????<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
????<prop key="query*">PROPAGATION_REQUIRED,readOnly</prop>
????<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
???</props>
??</property>
?</bean>
?
?<!-- HIBERNATE事务代理? -->
?<bean id="hibernateTransactionManager" ref="sessionFactory"/>
? ?</bean>
?<bean id="hibernateTransactionProxy"
??ref="hibernateTransactionManager" />
??<property name="proxyTargetClass" value="true" />
??<property name="transactionAttributes">
???<props>
????<prop key="add*">PROPAGATION_REQUIRED</prop>
????<prop key="save*">PROPAGATION_REQUIRED</prop>
????<prop key="insert*">PROPAGATION_REQUIRED</prop>
????<prop key="update*">PROPAGATION_REQUIRED</prop>
????<prop key="delete*">PROPAGATION_REQUIRED</prop>
????<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
????<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
????<prop key="query*">PROPAGATION_REQUIRED,readOnly</prop>
????<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
???</props>
??</property>
?</bean>
?
?<!-- 为处理BLOB进行JDBC抽取-->
?<bean id="nativeJdbcExtractor"
??? lazy-init="true" />
?<bean id="lobHandler" lazy-init="true">
??<property name="nativeJdbcExtractor">
???<ref local="nativeJdbcExtractor" />
??</property>
?</bean>
?
?<bean id="baseHibernateDAO" ref="sessionFactory"/>
?</bean>
?
?<bean id="baseJdbcDAO" ref="dataSource"/>
??? ?<!--property name="pageDialect" ref="pageDialect"/-->
?</bean>
?
</beans>

热点排行