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

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

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

1、案例介绍

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


案例目录

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

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

2、代码预览


从applicationContext.xml可以看出整个项目的框架

3、从struts.xml开始

struts.xml文件

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


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

业务层代码

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


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

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

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

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


javabean需和映射文件放在一起


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

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

【总结】

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容