设为首页 加入收藏

TOP

通向架构师的道路(第二十一天)万能框架spring(三)之SSH(一)
2018-03-16 08:47:24 】 浏览:555
Tags:通向 架构 师的 道路 二十一 万能 框架 spring SSH

一、前言

我们有了Spring+JdbcTemplate和Spring+iBatis并结合maven的基础,搭建一个SSX这样的框架现在就和玩一样的简单了,今天我们将搭建一个使用Struts1.3,Srping3, Hibernate3的SSH1的开发框架,大家跟着我一步步走,会发觉在程序跑通后自己再动手搭建一遍这个框架,只需要30分钟。

二、SSH框架

仔细看这个框架,稍微有点不一样了。

1)      Spring3是通过一个hibernate template来和hibernate的dao层结合起来并且管理起hibernate的相关事务的。因此我们自己写了一个BaseHibernateDaoSupport来用spring统一管理hibernate的事务。

2)      Hibernate和Spring的结合非常方便,我们只需要写一个hibernate.xml就可以了,datasource.xml中把原先的iBatis的相关配置全部去掉它,什么都不需要加事务还是维持原有的配置不变即可,对于我们来说需要改动的是dao层,还有把service层稍微做些小调整(一两句话的调整,非常简单),可能是我看到过的最简单的一种SSX的结合方式,远比iBatis和spring的结合要easy多了。

3)      Hibernate3开始可以使用jpa或者还是传统的hbm.xml文件这样的描述方式,在此我们坚持使用JPA的Annotation方式来声明我们的model而不是使用*.hbm.xml这样的方式。

注意:所有的包(package name)都要从原来的org.sky.ssi变成org.sky.ssh喽?

三、搭建SSH框架

3.1建立工程

我们还是使用maven来建立我们的工程,我们工程的名字叫myssh。

建完后照着翻外篇《第十九天》中的“四、如何让Maven构建的工程在eclipse里跑起来”对工程进行设置。

3.2 maven库设置

嘿嘿嘿嘿,不需要任何设置,直接把beta工程中的pom.xml文件拷贝入myssh工程中就可以用了,里面相关的spring,struts, hibernate的包我都已经事先配合了。

如果你是个图完美的的,你可以把pom.xml文件中的iBatis相关的jar给去除。

3.3 开始配置Hibernate与spring结合

打开/src/main/resources/spring/datasource下的datasource.xml,把所有的关于iBatis的设置全部去除,把org.sky.ssi这样的包名全部改成org.sky.ssh。

我们在myssh工程中需要增加一个工具类,一个xml和几个用到的hibernate的model的映射,下面来看。

src/main/resources/spring/hibernate/hibernate.xml文件

我们在src/main/resources/spring目录下增加一个目录叫hibernate,在这个hibernate目录下我们创建一个hibernate.xml文件。

其内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

	xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

	xsi:schemaLocation="

http://www.springframework.org/schema/beans


http://www.springframework.org/schema/beans/spring-beans-3.0.xsd


http://www.springframework.org/schema/beans


http://www.springframework.org/dtd/spring-beans.dtd">

  <bean id="hibernateSessionFactory"

	 class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

	  <property name="packagesToScan" value="org.sky.ssh.dao.impl.*.*" />

	   <property name="dataSource">

		   <ref bean="dataSource" />

	   </property>

	   <property name="annotatedClasses">

			<list>

				<value>org.sky.ssh.model.TLogin</value>		 <value>org.sky.ssh.model.TStudent</value>                                                                                           
		   </list>

		</property>

		   <property name="hibernateProperties">

		   <props>

			   <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>

			   <prop key="hibernate.show_sql">true</prop>

			   <prop key="hibernate.generate_statistics">true</prop>

			   <prop key="hibernate.connection.release_mode">auto</prop>

			   <prop key="hibernate.autoReconnect"
首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇MySQL分页优化中的“INNER JOIN方.. 下一篇Java 8 和 Java 9 中并发工具的改..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目