Spring入门第十讲——Hibernate-5.0.7+Struts-2.3.24+Spring-4.2.4三大框架整合开发

本文详细介绍了SSH(Spring、Hibernate、Struts)三大框架的整合过程,包括零障碍整合(带有Hibernate配置文件)和不带Hibernate配置文件的整合方式。涵盖了从创建web项目、引入jar包、配置文件、数据库和表的创建,到最后的事务管理。重点讲述了Spring如何整合Struts2和Hibernate,以及Spring的声明式事务管理。
摘要由CSDN通过智能技术生成

回顾SSH框架

至此,Hibernate-5.0.7、Struts-2.3.24和Spring-4.2.4这三个框架,我们已经都过了一遍了。现在,咱就要学习如何整合这三个框架进行开发了。在这之前,咱就来先回顾一下这三个框架。
在这里插入图片描述

SSH框架整合思想

Hibernate-5.0.7、Struts-2.3.24和Spring-4.2.4这三个框架都会应用在JavaEE三层结构中,每一层都用到了不同的框架。SSH框架整合的思想可以用下图来表示。
在这里插入图片描述

SSH框架的整合

Hibernate-5.0.7、Struts-2.3.24和Spring-4.2.4这三个框架的整合一共有三种方式,它们分别是:
在这里插入图片描述
本讲只讲第一种方式和第二种方式。

SSH框架的整合方式一:零障碍整合(带有Hibernate配置文件)

创建web项目,引入jar包

首先创建一个动态web项目,例如S2SH,然后要导入这三个框架开发所依赖jar包,那要导入哪些jar包呢?因为要整合这三个框架,所以要导入的jar包可多了。

Struts2框架所须jar包

要进行Struts2的基本的开发,可以参考struts-2.3.24中的apps目录下的一些示例代码。其中struts2-blank.war就是Struts2一个空的工程,解压struts2-blank.war之后,进入到WEB-INF下的lib目录中查看,你就能看到Struts2基本的开发jar包,所以我们得将这些jar包导入到咱的项目中。
在这里插入图片描述
除此之外,对于Struts2这个框架,我们还需要了解struts-2.3.24\lib目录下的这3个jar包。
在这里插入图片描述

Hibernate框架所须jar包
  • 首先,导入hibernate-release-5.0.7.Final\lib\required目录下的所有jar包,因为在该目录下,包含了运行Hibernate项目必须的jar包。
    在这里插入图片描述
    这时,你就会发现导入Struts2和Hibernate的jar包时,Struts2和Hibernate都引入了一个相同的jar包,Struts2引入的是javassist-3.11.0.GA.jar这样一个jar包,Hibernate引入的是javassist-3.18.1-GA.jar这样一个jar包,这两个jar包功能相同,但版本不一样,就很容易出现包冲突的问题,为了解决这个问题,咱必须得删除一个,删除javassist-3.11.0.GA.jar这个低版本的jar包即可。
  • 然后,导入MySQL数据库的驱动jar包。
    在这里插入图片描述
  • 接着,再导入与日志相关的jar包。
    在这里插入图片描述
    这时,对于Struts2中的两个与日志记录相关的jar包(log4j-api-2.2.jar和log4j-core-2.2.jar)而言,你可以选择删除掉,但是你要是愿意留着,也不影响。
  • 最后,如果Hibernate还要使用C3P0连接池,那么还得引入hibernate-release-5.0.7.Final\lib\optional\c3p0目录下的jar包。
    在这里插入图片描述
Spring框架所须jar包
  • 首先,导入Spirng框架的基本开发包,一共有6个。
    在这里插入图片描述
    这时,com.springsource.org.apache.log4j-1.2.15.jar这个日志记录的包可以不要(因为已经有了log4j-1.2.16.jar),但com.springsource.org.apache.commons.logging-1.1.1.jar这个jar包必须得有。
  • 然后,由于咱们接下来会使用到Spring声明式事务管理这种方式来管理事务,所以还得导入Spring AOP开发相关的jar包。
    在这里插入图片描述
  • 接着,由于咱们接下来会在程序中使用到Spring声明式事务管理这种方式来管理事务,所以还得导入与事务管理相关的jar包。
    在这里插入图片描述
  • 最后,导入Spring整合Hibernate的jar包。
    在这里插入图片描述
  • 如果你想要在程序中使用JdbcTemplate模板类,那么还得导入如下两个jar包。
    在这里插入图片描述
  • 如果你想通过Spring来整合web项目进行开发,那么还得导入如下jar包。
    在这里插入图片描述
  • 如果你还想在程序中通过Spring来整合JUnit进行单元测试,所以在项目中还应导入spring-tx-4.2.4.RELEASE.jar包。
    在这里插入图片描述

为了避免麻烦,干脆导入以上所有有关Spring框架开发的所须jar包。

引入相关的配置文件

Struts2框架所须的配置文件

首先,创建Struts2的核心配置文件,该核心配置文件的位置是在src目录下面,名称是struts.xml,一开始该文件的内容肯定是空的。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

</struts>

温馨提示:在Struts2和Spring框架整合的时候,Struts2核心配置文件的名称和位置是有固定要求的,即名称只能是struts.xml,且必须位于src目录下面。
然后,配置Struts2的核心过滤器,即在web.xml配置文件中添加如下配置。
在这里插入图片描述

Hibernate框架所须的配置文件

首先,创建Hibernate核心配置文件,该核心配置文件的位置是在src目录下面,名称是hibernate.cfg.xml。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
	
<hibernate-configuration>
	<session-factory>
		<!-- 下面是三个必须要有的配置 -->
		<!-- 配置连接MySQL数据库的基本参数 -->
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql:///ssh1</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">liayun</property>
		
		<!-- 配置Hibernate的方言 -->
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
		
		<!-- 下面三个是可选的配置哟! -->
		<!-- 打印sql语句 -->
		<property name="hibernate.show_sql">true</property>
		<!-- 格式化sql语句 -->
		<property name="hibernate.format_sql">true</property>
		<!-- 自动创建表 -->
		<property name="hibernate.hbm2ddl.auto">update</property>
		
		<!-- 配置C3P0连接池 -->
		<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
		<!--在连接池中可用的数据库连接的最少数目 -->
		<property name="c3p0.min_size">5</property>
		<!--在连接池中所有数据库连接的最大数目  -->
		<property name="c3p0.max_size">20</property>
		<!--设定数据库连接的过期时间,以秒为单位,
		如果连接池中的某个数据库连接处于空闲状态的时间超过了timeout时间,就会从连接池中清除 -->
		<property name="c3p0.timeout">120</property>
		 <!--每3000秒检查所有连接池中的空闲连接 以秒为单位-->
		<property name="c3p0.idle_test_period">3000</property>

</hibernate-configuration>

在编写以上文件中的内容时,需要注意以下几个点。

  • 一定得删除那个与线程绑定的session,即在hibernate.cfg.xml文件中不要配置以下内容:
    在这里插入图片描述
    因为在Spring里面已经帮我们做好了,不用我们在Hibernate这边去搞这些事情了。其实,session最终是要交给Spring去管理的,Spring帮我们弄的那个session就已经与线程绑定了。
  • 去掉事务隔离级别的配置,即在hibernate.cfg.xml文件中不要配置以下内容:
    在这里插入图片描述
    事务隔离级别现在写在这儿也没啥用,因为我们的事务最终都是要交给Spring去管理的。
  • 如果只是单纯使用Hibernate框架,那么核心配置文件的名称必须是hibernate.cfg.xml,且必须位于src目录下。但在Hibernate和Spring框架整合的时候,Hibernate核心配置文件的名称和位置是没有固定要求的。

然后,咱应该还要引入实体类的映射配置文件。但这个得等到后面我们去编写实体类时,再引入与其相关的映射配置文件即可,现在先别急着写。

Spring框架所须的配置文件

首先,咱得引入Spring的配置文件(即applicationContext.xml),一开始该文件的内容肯定是空的,只不过包含了各种schema约束,下面我给出的applicationContext.xml文件包含的schema约束应该是最全面的。

<?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:context="http://www.springframework.org/schema/context"
	xmlns:aop
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李阿昀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值