`
z_xiaofei168
  • 浏览: 200964 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

    博客分类:
  • S2SH
阅读更多

三大框架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数据源:

 

<!-- 数据库连接池 -->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
		destroy-method="close">
		<property name="driverClass" value="com.mysql.jdbc.Driver" />
		<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/s2sh?useUnicode=true&amp;characterEncoding=UTF-8" />
		<property name="user" value="root" />
		<property name="password" value="root" />
		<!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
		<property name="initialPoolSize" value="1" />
		<!--连接池中保留的最小连接数。-->
		<property name="minPoolSize" value="1" />
		<!--连接池中保留的最大连接数。Default: 15 -->
		<property name="maxPoolSize" value="300" />
		<!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
		<property name="maxIdleTime" value="60" />
		<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
		<property name="acquireIncrement" value="5" />
		<!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
		<property name="idleConnectionTestPeriod" value="60" />
	</bean>


<!-- 连接工厂 -->
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="mappingResources">
			<list>
				<value>cn/z_xiaofei168/domain/User.hbm.xml</value>
			</list>
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
				<prop key="hibernate.hbm2ddl.auto">update</prop>
				<prop key="hibernate.show_sql">true</prop>
				<prop key="hibernate.format_sql">false</prop>
			</props>
		</property>
	</bean>

 

 
第三步:

实体bean配置模板.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
	<class name="cn.z_xiaofei168.domain.User" table="users">
		<id name="id">
			<generator class="native" />
		</id>
		<property name="name" />
		<property name="pass" />
		<property name="email" />
		<property name="rdate" />
	</class>
</hibernate-mapping>

 

 

   第四步:

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

 

<!--
		1、指定spring的配置文件,默认从web根目录寻找配置文件,
		我们可以通过spring提供的classpath:前缀指定从类路径下寻找
	-->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:beans.xml</param-value>
	</context-param>
	<!-- 对Spring容器进行实例化 -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>



 	<!-- 2、配置struts2启动时用的Filter -->
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

 

  第五步:

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

<?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
	"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
	<package name="z_xiaofei168" extends="struts-default" namespace="/csdn">
		<global-results>
			<result name="input">/index.jsp</result>
		</global-results>
		<!--
			beans.xml中
			id="userAction"中的userAction必须与struts.xml中的class="userAction"中相一致
		-->
		<action name="user_*" class="userAction" method="{1}">
			<result name="insert" type="chain">user_findAll</result>
			<result name="delete" type="chain">user_findAll</result>
			<result name="findById">/user/user_update.jsp</result>
			<result name="update" type="chain">user_findAll</result>
			<result name="findAll">/user/user_list.jsp</result>

		</action>
	</package>
</struts>

 

 

  第六步:

为了能从spring容器中寻找到Action bean,要求action配置的class属性值和spring中bean的名称相同。如下:

 

 

<package name="z_xiaofei" extends="json-default" namespace="/csdn">
		<global-results>
			<result name="input">/index.jsp</result>
		</global-results>
		<!--
			beans.xml中
			id="userAction"中的userAction必须与struts.xml中的class="userAction"中相一致
		-->
		<action name="user_*" class="userAction" method="{1}">
			...
		</action>
	</package>

 

 
第七步:

使用spring解决struts2乱码问题。

 

<!-- 使用spring解决struts2乱码问题 -->
	<filter>
		<filter-name>encoding</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>
	</filter>
	<filter-mapping>
		<filter-name>encoding</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

 

 第八步:

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

<!-- 使用spring解决hibernate因session关闭导致的延迟加载例外问题 -->
	<filter>
		<filter-name>OpenSessionInViewFilter</filter-name>
		<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
		<init-param>
			<!--
				指定org.springframework.orm.hibernate3.LocalSessionFactoryBean
				在spring配置文件中的名称,默认值为sessionFactory.
				如果LocalSessionFactoryBean在spring中的名称不是sessionFactory,
				该参数一定要指定,否则会出现找不到sessionFactory的例外
			-->
			<param-name>sessionFactoryBeanName</param-name>
			<param-value>sessionFactory</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>OpenSessionInViewFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

 

 

62
17
分享到:
评论
37 楼 wcg2008er 2011-11-30  
2、aspectjrt.jar
3、aspectjweaver.jar
4、c3p0-0.9.1.2.jar
5、cglib-nodep-2.1_3.jar  
6、common-annotations.jar
8、log4j-1.2.15.jar
请问你这些jar包是在哪个目录里面找的?
36 楼 linianf 2011-07-08  
请问楼主如何解决asm包冲突的问题的
35 楼 z_xiaofei168 2011-06-02  
lan861698789 写道
太简单了啊

往往简单是最难的。
34 楼 z_xiaofei168 2011-06-02  
钢镚儿 写道
贡献呀!以后忘记了可以在上面找了!哈哈

呵呵,恩恩,要放在自己的电脑里找不到了,想想自己的博客上什么都有,直接上去找就好了。
33 楼 lan861698789 2011-06-02  
太简单了啊
32 楼 钢镚儿 2011-06-02  
贡献呀!以后忘记了可以在上面找了!哈哈
31 楼 z_xiaofei168 2011-05-26  
shuailan 写道
kyfxbl 写道
kang844850704 写道
z_xiaofei168 写道
kang844850704 写道
不知道怎么说    写的很好  也很有用  可工作后发现我做过的项目从没一起用过这3个框架   基本没用过hebernate    哎 !

估计是每个公司有每个公司开发的规范的原因吧。当用到的时候不是就有用了吗?有时候学的东西你也不知道它什么时候有用。你说是吧??

确实。。。该死的华为  该死的BME  OSGI  MAVEN 


你说的这3个,和HIBERNATE有一毛钱关系吗?

趁机发泄一下吧,估计有个不堪回首的过去和悲惨的现实,的确不适应maven的包管理模式.


What???
30 楼 z_xiaofei168 2011-05-26  
yushl 写道
三大框架。。。。。。!!!!!!
怎么听到这个词的时候我有种鸡皮疙瘩一身的感觉?

神马情况?
29 楼 yushl 2011-05-26  
三大框架。。。。。。!!!!!!
怎么听到这个词的时候我有种鸡皮疙瘩一身的感觉?
28 楼 shuailan 2011-05-26  
kyfxbl 写道
kang844850704 写道
z_xiaofei168 写道
kang844850704 写道
不知道怎么说    写的很好  也很有用  可工作后发现我做过的项目从没一起用过这3个框架   基本没用过hebernate    哎 !

估计是每个公司有每个公司开发的规范的原因吧。当用到的时候不是就有用了吗?有时候学的东西你也不知道它什么时候有用。你说是吧??

确实。。。该死的华为  该死的BME  OSGI  MAVEN 


你说的这3个,和HIBERNATE有一毛钱关系吗?

趁机发泄一下吧,估计有个不堪回首的过去和悲惨的现实,的确不适应maven的包管理模式.
27 楼 z_xiaofei168 2011-05-24  
Technoboy 写道
我一直搞不明白,为什么这种东西总会这么。。。。

什么意思?
26 楼 z_xiaofei168 2011-05-24  
szcs10138456 写道
赞一个,很用心~!

呵呵
25 楼 z_xiaofei168 2011-05-24  
yin_bp 写道
我发表了一片mvc+pesistent+ioc/aop整合的文章,是不是有用呢,可以看一下:
http://www.iteye.com/wiki/bbossgroups/3092-mvc-bboss-config

嗯,挺好的
24 楼 Technoboy 2011-05-24  
我一直搞不明白,为什么这种东西总会这么。。。。
23 楼 szcs10138456 2011-05-23  
赞一个,很用心~!
22 楼 yin_bp 2011-05-22  
我发表了一片mvc+pesistent+ioc/aop整合的文章,是不是有用呢,可以看一下:
http://www.iteye.com/wiki/bbossgroups/3092-mvc-bboss-config
21 楼 z_xiaofei168 2011-05-20  
skzr.org 写道

恩,其实我看到你学的了,呵呵
20 楼 skzr.org 2011-05-20  
19 楼 z_xiaofei168 2011-05-20  
wustrive_2008 写道
很好,学习了,现在正需要!

那就好,我写这篇文章就是为了大家学习,共同进步的。
18 楼 wustrive_2008 2011-05-20  
很好,学习了,现在正需要!

相关推荐

    在Netbeans中使用Struts2.0+Spring2.5+Hibernate框架

    ### 在Netbeans中使用Struts2.0+Spring2.5+Hibernate框架 #### 一、概述 在当今的企业级应用程序开发中,采用MVC(Model-View-Controller)架构模式的框架组合变得越来越普遍。其中,Struts2、Spring与Hibernate...

    sturts2+spring2.5+hibernate3.5+c3p0+log4j整合示例项目

    本项目是一个基于Struts2、Spring2.5、Hibernate3.5的整合示例,其中还引入了c3p0作为数据库连接池,并使用了日志工具Log4j。这个项目的目的是帮助开发者理解如何在实际开发中快速、有效地整合这四个关键组件,从而...

    毕业设计电子商城java+jsp+struts2+hibernate3.5+sping2.5

    标题 "毕业设计电子商城java+jsp+struts2+hibernate3.5+spring2.5" 描述了一个基于Java技术栈开发的电子商务平台,它整合了多种流行的技术框架,如JSP、Struts2、Hibernate3.5以及Spring2.5。这个项目涵盖了从需求...

    Java SSH框架整合搭建Web系统(Struts1.2+Spring2.5+Hibernate3.2)

    ### Java SSH框架整合搭建Web系统(Struts1.2+Spring2.5+Hibernate3.2) #### 一、准备工作 在开始构建基于Struts1.2+Spring2.5+Hibernate3.2的Web应用之前,需要进行一系列的基础设置工作。 **1.1 创建工程** ...

    SSH 手动搭建Spring2.5+Strut1.3+Hibernate3.5

    SSH(Spring、Struts、Hibernate)是Java Web开发中经典的三层架构组合,分别负责依赖注入、MVC(Model-View-Controller)模式实现和对象关系映射。本教程将详细介绍如何手动搭建Spring 2.5、Struts 1.3和Hibernate ...

    传智播客SSH(struts2 spring2.5 hibernate3.5) ppt 课件

    SSH(Struts2 + Spring + Hibernate)是Java开发中一种常见的企业级应用框架组合,它由三个主要组件构成,用于构建高效、灵活的Web应用程序。本篇将详细讲解这三个组件的核心概念、工作原理以及如何在实际项目中进行...

    SSH整合包(S1.3+S2.5+H3.3)

    SSH整合包(S1.3+S2.5+H3.3)是一个常见的Java Web开发框架组合,由Struts 1.3、Spring 2.5和Hibernate 3.3这三大开源框架集成而成。这个整合包是开发人员进行企业级应用开发时常用的一种工具集合,便于快速构建基于...

    基于注解的ssh可运行完整程序

    这个基于注解的SSH可运行完整程序是利用这三个框架的最新版本——Struts2.1.6、Spring2.5和Hibernate3.5进行整合的示例,而且所有的配置都是通过注解来完成的,这大大简化了传统XML配置的复杂性。下面将详细解释这些...

    JAVA程序开发大全---上半部分

    以及基于这些技术的商业化应用程序的开发技巧,在讲解过程中以目前最为流行的开发工具MyEclipse为载体,全面系统地介绍了如何在MyEclipse中开发基于Struts、Hibernate、Spring等主流框架的各种Java应用程序。...

    Spring 2.0 开发参考手册

    2. Spring 2.0 的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 更简单的XML配置 2.2.2. 新的bean作用域 2.2.3. 可扩展的XML编写 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP XML配置 2.3.2. 对@...

    Spring-Reference_zh_CN(Spring中文参考手册)

    2. Spring 2.0 的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 更简单的XML配置 2.2.2. 新的bean作用域 2.2.3. 可扩展的XML编写 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP XML配置 2.3.2. 对@AspectJ 切面的...

    spring chm文档

    Spring Framework 开发参考手册 Rod Johnson Juergen Hoeller Alef Arendsen Colin Sampaleanu Rob Harrop Thomas Risberg Darren Davison Dmitriy Kopylenko Mark Pollack Thierry Templier Erwin ...

    Spring API

    2. Spring 2.0和 2.5的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 新的bean作用域 2.2.2. 更简单的XML配置 2.2.3. 可扩展的XML编写 2.2.4. Annotation(注解)驱动配置 2.2.5. 在classpath中自动搜索组件...

    Spring中文帮助文档

    2.7. 移植到Spring 2.5 2.7.1. 改变 2.8. 更新的样例应用 2.9. 改进的文档 I. 核心技术 3. IoC(控制反转)容器 3.1. 简介 3.2. 基本原理 - 容器和bean 3.2.1. 容器 3.2.2. 实例化容器 3.2.3. 多种bean ...

    Spring攻略(第二版 中文高清版).part2

    2.5 使用Spring表达式语言 64 2.5.1 问题 64 2.5.2 解决方案 64 2.5.3 工作原理 65 2.6 设置Bean作用域 69 2.6.1 问题 69 2.6.2 解决方案 69 2.6.3 工作原理 70 2.7 自定义Bean初始化和析构 72 ...

    Spring攻略(第二版 中文高清版).part1

    2.5 使用Spring表达式语言 64 2.5.1 问题 64 2.5.2 解决方案 64 2.5.3 工作原理 65 2.6 设置Bean作用域 69 2.6.1 问题 69 2.6.2 解决方案 69 2.6.3 工作原理 70 2.7 自定义Bean初始化和析构 72 ...

    DWR(Direct Web Remote)中文文档

    #### 三、DWR与第三方框架的整合 **3.1 DWR与Servlet** - **4.1.1 使用 webContext 的方法**: DWR 支持使用 webContext 获取 Servlet 上下文中的资源。 - **4.1.2 方法选择**: 根据实际需求选择最适合的调用方式。...

Global site tag (gtag.js) - Google Analytics