Note16:由一个小案例深入理解SSH

上一篇转载文章介绍了一下SSH的优缺点和和运作模式,自己看着挺好就收藏了。

这篇通过一个小案例深入理解SSH是怎么运作的,其框架之间,组件之间是怎么联系在一起的。这篇可能比较长,请耐心看,纯手打。

1、案例介绍

案例的工程目录,采用myeclipse开发,其实IDE都一样,本文重在理解原理


Note16:由一个小案例深入理解SSH_第1张图片
案例目录

对于分析一个SSH项目,常用的分析方式是从struts.xml文件出发,按照,action->service->dao的模式进行,每个action对应一个处理类,一般按照这个套路进行阅读大型项目源码和开发项目。

这个案例很简单,是ssh框架的最基本的案例,这里只通过一个功能分析ssh运作原理,功能:插入一条数据到数据库中。

2、代码预览


Note16:由一个小案例深入理解SSH_第2张图片
Note16:由一个小案例深入理解SSH_第3张图片
从applicationContext.xml可以看出整个项目的框架

3、从struts.xml开始

Note16:由一个小案例深入理解SSH_第4张图片
struts.xml文件

只有两个action,其中一个base action是通用父类action,只看testAction,由class找到testAction所在路径和具体的实现代码,这里没有test的路径,采用了spring 的ioc,在applicationContext.xml中去找。


Note16:由一个小案例深入理解SSH_第5张图片

程序从execute()执行,通过this.getAllService调用业务层的代码。

Note16:由一个小案例深入理解SSH_第6张图片
业务层代码

new 一个需要插入的对象,对对象进行set值,将带值的对象保存入数据库中,这里通过dao层进行调用save()实现数据库的操作。


Note16:由一个小案例深入理解SSH_第7张图片

save()方法由sessionFactory调用产生session,调用session的方法对数据库进行操作。

其中sessionFactory通过spring的IOC进行加载,

Note16:由一个小案例深入理解SSH_第8张图片

通过数据源dataSource进行数据的连接操作,

Note16:由一个小案例深入理解SSH_第9张图片

其中的sessionFactory调用hibernate的cfg.xml进行加载相对应的hbm.xml映射文件

Note16:由一个小案例深入理解SSH_第10张图片


Note16:由一个小案例深入理解SSH_第11张图片
javabean需和映射文件放在一起


Note16:由一个小案例深入理解SSH_第12张图片

通过映射文件实现和数据的一一对应。以上便是整个SSH框架的调用过程。我们来用流程图来总结一下,只管的理解其原理。

【突然发现流程图我想不到用什么软件来绘制,下次再补上,程序猿的惰性又来了】

【总结】

对应JAVAEE的项目最好按照之前说的,由action--service--dao ,其中需要用的持久层的映射文件在hibernate的cfg文件中,对应的action在struts.xml中找,所有使用到的文件类,均用appclication.xml,利用spring的IOC进行装载。

你可能感兴趣的:(Note16:由一个小案例深入理解SSH)