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

开发 后端
本篇文章对三大框架SSH的整合做出了详细介绍,希望对大家有所帮助。

第一步:

下面给出整合开发时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.xmlvalue>    
  30.             list>    
  31.         property>    
  32.         <property name="hibernateProperties">    
  33.             <props>    
  34.                 <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialectprop>    
  35.                 <prop key="hibernate.hbm2ddl.auto">updateprop>    
  36.                 <prop key="hibernate.show_sql">trueprop>    
  37.                 <prop key="hibernate.format_sql">falseprop>    
  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.ContextLoaderListenerlistener-class>    
  4.     listener>    
  5.     
  6.     
  7.     
  8.         
  9.     <filter>    
  10.         <filter-name>struts2filter-name>    
  11.         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterfilter-class>    
  12.     filter>    
  13.     <filter-mapping>    
  14.         <filter-name>struts2filter-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.jspresult>    
  9.         global-results>    
  10.             
  11.     <filter>    
  12.         <filter-name>encodingfilter-name>    
  13.         <filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class>    
  14.         <init-param>    
  15.             <param-name>encodingparam-name>    
  16.             <param-value>UTF-8param-value>    
  17.         init-param>    
  18.     filter>    
  19.     <filter-mapping>    
  20.         <filter-name>encodingfilter-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的改进
责任编辑:金贺 来源: ITEYE博客
相关推荐

2015-05-05 11:06:02

JavaJava框架Struts+Hibe

2009-03-06 14:34:31

StrutsHibernateSpring

2009-06-01 15:44:18

2009-07-14 16:55:32

MyEclipse S

2009-07-17 17:45:56

iBATIS Spri

2009-06-19 10:00:37

Struts和Spri

2009-09-21 17:10:14

struts Hibe

2016-12-14 09:03:34

springhibernate异常

2009-09-22 14:46:18

struts-spri

2009-06-16 11:14:00

Hibernate+SJ2EE应用开发

2009-07-20 16:07:19

Struts2.0 S

2009-07-09 18:24:00

WebWork与Spr

2009-06-19 15:28:03

SpringHibernate

2009-09-25 17:47:35

Struts+Hibe

2010-03-30 08:36:26

Java框架StrutsSpring

2009-09-24 09:18:18

2009-09-23 17:56:45

JSF入门

2009-06-03 14:19:34

Struts2Guice

2010-07-30 16:04:17

Flex2struts

2011-06-28 09:56:49

JavaStruts2Webwork
点赞
收藏

51CTO技术栈公众号