Struts2.2.1+Spring3.1.0.M2+Hibernate3.5.1整合配置demo(附源码)
2012-09-27 16:21
429 查看
以前一直使用SSI,虽然有接触过SSH,但从来没亲自配置过SSH,昨天一时兴起,自己尝试配置,结果遇到了各种问题,弄了两天才基本搞定(之所以说是基本搞定是因为只测试了增加、查询、删除功能,其它的一些功能没有涉及)。前提就是那样,下面还是看具体如何配置吧!
1.整合用到的环境
SpringSource Tool Suite 2.8.1.RELEASE
apache-tomcat-6.0.35
mysql-5.1.50-win32
jdk1.6.0_13
2.需要用到的jar包(中间可能有几个jar是不需要的,没有严格去测试)及项目结构图
项目结构图
3.下面给出的是一些很重要的配置信息
web.xml
applicationContext.xml
主要的配置信息就是如上面所示,至于action、service、dao中的内容都是比较常见的,这儿就不再把它们粘贴出来了(因为占地方,呵呵)
按理说应该一步步写清楚的,但这次准备得不太充分,还请大家原谅,下个版本的(Struts2.3.4.1+Spring3.2.0.M2+hibernate4.1.7.Final的整合)将会一步步地详细说说配置(如:struts的配置、struts与spring的整合、struts+spring+hibernate的整合等)。文中有一些地方也许不太恰当,欢迎大家指出!
源码下载:SSH Demo源码下载
配置时参考的文章有:
struts2+spring3+hibernate3所需jar包
SSH整合包详解.Struts2.2.3+Spring3.1.0.M2+Hibernate3.6.6
Struts2+Spring3+Hibernate3 集成方法
本文地址:/article/7948024.html
1.整合用到的环境
SpringSource Tool Suite 2.8.1.RELEASE
apache-tomcat-6.0.35
mysql-5.1.50-win32
jdk1.6.0_13
2.需要用到的jar包(中间可能有几个jar是不需要的,没有严格去测试)及项目结构图
项目结构图
3.下面给出的是一些很重要的配置信息
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>SSH</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext*.xml</param-value> <!-- 如果把applictionContext.xml放在WEB-INF下面而没在classes下面,则要写成如下形式 --> <!-- <param-value>/WEB-INF/applicationContext*.xml</param-value> --> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 下面这个监听器用来防止内在泄漏 --> <listener> <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> </listener> <!-- Spring encoding filter Start --> <!-- Spring编码过滤器 --> <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- Spring encoding filter End --> <!-- 配置Spring中OpenSessionInViewFilter过滤器解决hibernate延迟加载的问题 Start --> <filter> <filter-name>OpenSessionInViewFilter</filter-name> <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class> </filter> <filter-mapping> <filter-name>OpenSessionInViewFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 配置Spring中OpenSessionInViewFilter过滤器解决hibernate延迟加载的问题 End --> <!-- Struts2 filter start --> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> <!-- struts2自动扫描此包下所有类为action的类 ,struts2注解开发必须用 --> <!-- <init-param> <param-name>actionPackages</param-name> <param-value>com.dengsilinming.ssh.example.action</param-value> </init-param> --> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- Struts2 filter end --> <!-- 配置日志 --> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/log4j.properties</param-value> </context-param> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
applicationContext.xml
<?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-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd" default-lazy-init="true"> <context:property-placeholder location="classpath:jdbc.properties" /> <context:annotation-config /><!-- 支持注解 --> <context:component-scan base-package="com.dengsilinming.ssh.sample" /> <!-- <bean id="userAction" class="com.dengsilinming.ssh.sample.action.UserAction"> 这个bean是用于测试struts2 + spring3时用的 </bean> --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driverClass}" /> <property name="jdbcUrl" value="${jdbc.jdbcUrl}" /> <property name="user" value="${jdbc.user}" /> <property name="password" value="${jdbc.password}" /> <property name="maxPoolSize" value="${c3p0.pool.maxPoolSize}" /> <property name="minPoolSize" value="${c3p0.pool.minPoolSize}" /> <property name="initialPoolSize" value="${c3p0.pool.initialPoolSize}" /> <property name="acquireIncrement" value="${c3p0.pool.acquireIncrement}" /> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">${hibernate.dialect}</prop> <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop> </props> </property> <property name="packagesToScan"> <list> <value>com.dengsilinming.ssh.sample.model</value> </list> </property> </bean> <!-- configure transaction manager start --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <!-- configure transaction manager end --> <!-- 定义注解形式的事务管理 开始 --><!-- 本项目中不采用这种方式 --> <!-- <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/> --> <!-- 定义注解形式的事务管理 结束 --> <!-- 使用配置来管理事务 开始 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="save*" propagation="REQUIRED" isolation="DEFAULT" /> <tx:method name="add*" propagation="REQUIRED" isolation="DEFAULT" /> <tx:method name="update*" propagation="REQUIRED" isolation="DEFAULT" /> <tx:method name="delete**" propagation="REQUIRED" isolation="DEFAULT" /> <tx:method name="batch*" propagation="REQUIRED" isolation="DEFAULT" /> <tx:method name="get*" propagation="REQUIRED" isolation="DEFAULT" read-only="true" /> <tx:method name="load*" propagation="REQUIRED" isolation="DEFAULT" read-only="true" /> <tx:method name="find*" propagation="REQUIRED" isolation="DEFAULT" read-only="true" /> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="affectMethods" expression="execution(* com.dengsilinming.ssh.sample.service.*.*(..))" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="affectMethods" /> </aop:config> <!-- 使用配置来管理事务 结束 --> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> </beans>struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.objectFactory" value="spring" /> <constant name="struts.devMode" value="false" /><!-- 开发时为true,应用时为false --> <constant name="struts.i18n.encoding" value="UTF-8" /> <!-- <constant name="struts.multipart.saveDir" value="/tmp/" /> --> <package name="sample" extends="struts-default"> <action name="turnToPage" class="com.dengsilinming.ssh.sample.action.UserAction" method="turnToPage"> <result name="success">/WEB-INF/pages/user_add.jsp</result> </action> <action name="getAllUserInfo" class="com.dengsilinming.ssh.sample.action.UserAction" method="getAllUserList"> <result name="success">/WEB-INF/pages/user_list.jsp</result> </action> <action name="deleteUser" class="com.dengsilinming.ssh.sample.action.UserAction" method="deleteUser"> <result name="success">/WEB-INF/pages/user_list.jsp</result> </action> <action name="addUser" class="com.dengsilinming.ssh.sample.action.UserAction" method="addUserInfo"> <result name="success">/WEB-INF/pages/user_list.jsp</result> </action> </package> </struts>log4j.properties
log4j.rootLogger=INFO,R,stdout log4j.logger.com.foxconn=INFO log4j.appender.R=org.apache.log4j.DailyRollingFileAppender log4j.appender.R.File=${catalina.home}/logs/educloud.log log4j.appender.R.datePattern='.'yyyy-MM-dd'.log' log4j.appender.R.append=true log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %c -%m%n log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n log4j.logger.java.sql.Connection = DEBUG log4j.logger.java.sql.Statement = DEBUG log4j.logger.java.sql.PreparedStatement = DEBUG log4j.logger.java.sql.ResultSet = DEBUGjdbc.properties
jdbc.driverClass=com.mysql.jdbc.Driver jdbc.jdbcUrl=jdbc:mysql://localhost:3306/struts_spring_hibernate jdbc.user=admin jdbc.password=admin c3p0.pool.maxPoolSize=10 c3p0.pool.minPoolSize=2 c3p0.pool.initialPoolSize=3 c3p0.pool.acquireIncrement=2 hibernate.dialect=org.hibernate.dialect.MySQL5Dialect hibernate.hbm2ddl.auto=update # 第一次运行时需要将hibernate.hbm2ddl.auto设置为create,否则就得自己手动创建表 hibernate.show_sql=true
主要的配置信息就是如上面所示,至于action、service、dao中的内容都是比较常见的,这儿就不再把它们粘贴出来了(因为占地方,呵呵)
按理说应该一步步写清楚的,但这次准备得不太充分,还请大家原谅,下个版本的(Struts2.3.4.1+Spring3.2.0.M2+hibernate4.1.7.Final的整合)将会一步步地详细说说配置(如:struts的配置、struts与spring的整合、struts+spring+hibernate的整合等)。文中有一些地方也许不太恰当,欢迎大家指出!
源码下载:SSH Demo源码下载
配置时参考的文章有:
struts2+spring3+hibernate3所需jar包
SSH整合包详解.Struts2.2.3+Spring3.1.0.M2+Hibernate3.6.6
Struts2+Spring3+Hibernate3 集成方法
本文地址:/article/7948024.html
相关文章推荐
- ssh整合配置(struts2.2.1+ hibernate3.6+spring3.0.5)
- ssh最新整合配置(struts2.2.1+ hibernate3.6+spring3.0.5)
- struts 零配置demo(struts-convertion-plugin)
- struts2.0 整合tiles 配置
- 【笔记】Velocity模板 和 Spring的整合配置 解决页面乱码的最佳方案, 简单Demo了解Velocity
- 整合struts2+hibernate详细配置步骤及注意事项
- Spring_hibernate_struts整合(集成配置)
- Struts 2相关配置与基本操作演示(案例Demo)
- Struts Spring Ibatis整合框架搭建配置文档
- 最新版本的Struts2+Spring4+Hibernate4三大框架整合(截止2014-10-15,提供源码下载)
- SSI整合以及缓存的配置(struts2.2.1.1 + spring3.0.1 + ibatis2.3.0.677)
- Struts,Hibernate,Spring整合的重点在于配置文件
- struts2.2.3+spring3.1.0+mybatis3.1.0框架整合集成简单demo
- SSH整合包详解.Struts2.2.3+Spring3.1.0.M2+Hibernate3.6.6
- spring2.5+struts2.1.8+hibernate3整合配置
- struts2.2.1配置详解
- SSH整合包详解.Struts2.2.3+Spring3.1.0.M2+Hibernate3.6.6
- shh环境配置——Spring与struts整合
- Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
- SSH整合Spring、Struts、Hibernate、web配置文件