三大框架Struts2+Spring2.5+Hibernate3.5的整合开发

第一步:

下面给出整合开发时Struts2、Hibernate3.5、Spring2.5需要的jar。

Struts2所需要的jar如下:

1、struts2-core-2.x.x.x.jar :Struts 2框架的核心类库

2、xwork-2.x.x.jar :XWork类库,Struts 2在其上构建

3、ognl-2.x.x.jar :对象图导航语言(Object Graph Navigation Language),struts2框架通过其读写对象的属性

4、freemarker-2.3.x.jar :Struts 2的UI标签的模板使用FreeMarker编写

5、commons-logging-1.1.x.jar :ASF出品的日志包,Struts 2框架使用这个日志包来支持Log4J和JDK 1.4+的日志记录。

6、commons-fileupload-1.2.1.jar 文件上传组件,2.1.6版本后必须加入此文件

7、struts2-json-plugin.jar struts2与json的插件

8、struts2-spring-plugin.jar struts2与spring的插件

Hibernate3.5所需要的jar如下:

hibernate核心安装包下的jar

1、hibernate3.jar

2、lib\required\*.jar

hibernate注解安装包下的jar

hibernate针对JPA的实现包

Spring安装包下的jar

1、spring.jar

2、aspectjrt.jar

3、aspectjweaver.jar

4、c3p0-0.9.1.2.jar

5、cglib-nodep-2.1_3.jar

6、common-annotations.jar

7、commons-logging.jar

8、log4j-1.2.15.jar

等等。具体情况因具体而定。如下图的jar

 

 

 

第二步:

在源文件夹下新建Spring配置文件beans.xml,在配置文件中配置c3p0数据源:

Xml代码

 
 
 
 
  1.     
  2.     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"    
  3.         destroy-method="close">    
  4.         <property name="driverClass" value="com.mysql.jdbc.Driver" />    
  5.         <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/s2sh?useUnicode=true&characterEncoding=UTF-8" />    
  6.         <property name="user" value="root" />    
  7.         <property name="password" value="root" />    
  8.              
  9.         <property name="initialPoolSize" value="1" />    
  10.              
  11.         <property name="minPoolSize" value="1" />    
  12.              
  13.         <property name="maxPoolSize" value="300" />    
  14.              
  15.         <property name="maxIdleTime" value="60" />    
  16.              
  17.         <property name="acquireIncrement" value="5" />    
  18.              
  19.         <property name="idleConnectionTestPeriod" value="60" />    
  20.      bean>    
  21.     
  22.     
  23.     
  24.     <bean id="sessionFactory"    
  25.         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">    
  26.         <property name="dataSource" ref="dataSource" />    
  27.         <property name="mappingResources">    
  28.             <list>    
  29.                 <value>cn/z_xiaofei168/domain/User.hbm.xml value>    
  30.              list>    
  31.          property>    
  32.         <property name="hibernateProperties">    
  33.             <props>    
  34.                 <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect prop>    
  35.                 <prop key="hibernate.hbm2ddl.auto">update prop>    
  36.                 <prop key="hibernate.show_sql">true prop>    
  37.                 <prop key="hibernate.format_sql">false prop>    
  38.              props>    
  39.          property>    
  40.      bean>   

 

 

 

 

第三步:

实体bean配置模板.hbm.xml

Xml代码

 
 
 
 
  1. xml version="1.0" encoding="UTF-8"?>    
  2.     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"     
  3.     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">    
  4. <hibernate-mapping>    
  5.     <class name="cn.z_xiaofei168.domain.User" table="users">    
  6.         <id name="id">    
  7.             <generator class="native" />    
  8.          id>    
  9.         <property name="name" />    
  10.         <property name="pass" />    
  11.         <property name="email" />    
  12.         <property name="rdate" />    
  13.      class>    
  14. hibernate-mapping>    

 

 

 

第四步:

在web容器中实例化spring容器和配置struts2

Xml代码

 
 
 
 
  1. <STRONG>     
  2.     <listener>    
  3.         <listener-class>org.springframework.web.context.ContextLoaderListener listener-class>    
  4.      listener>    
  5.     
  6.     
  7.     
  8.          
  9.     <filter>    
  10.         <filter-name>struts2 filter-name>    
  11.         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter filter-class>    
  12.      filter>    
  13.     <filter-mapping>    
  14.         <filter-name>struts2 filter-name>    
  15.         <url-pattern>/* url-pattern>    
  16.      filter-mapping> STRONG>    

 

第五步:

struts2的配置文件模板struts.xml如下。常量struts.objectFactory=spring明确指出将由spring负责创建Action实例。

Xml代码

 
 
 
 
  1. xml version="1.0" encoding="UTF-8" ?>    
  2.  
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"     
  4.     "http://struts.apache.org/dtds/struts-2.1.7.dtd">    
  5. <struts>    
  6.     <package name="z_xiaofei168" extends="struts-default" namespace="/csdn">    
  7.         <global-results>    
  8.             <result name="input">/index.jsp result>    
  9.          global-results>    
  10.              
  11.     <filter>    
  12.         <filter-name>encoding filter-name>    
  13.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter filter-class>    
  14.         <init-param>    
  15.             <param-name>encoding param-name>    
  16.             <param-value>UTF-8 param-value>    
  17.          init-param>    
  18.      filter>    
  19.     <filter-mapping>    
  20.         <filter-name>encoding filter-name>    
  21.         <url-pattern>/* url-pattern>    
  22.      filter-mapping>    

 

第八步:

使用spring解决hibernate因session关闭导致的延迟加载例外问题。

【编辑推荐】

  1. 学习比较Struts2和Struts1:Struts2完胜
  2. Struts2.1.6的环境搭建与示例
  3. iBATIS Spring Struts2整合实例浅析
  4. Struts+WebWork简单示例
  5. Struts2对WebWork的改进
THE END