【SSH】——框架理解篇
2016-05-15 21:48
260 查看
最初,我理解的SSH是:它是一个框架,分为5层:JSP交互界面、action、service、dao、vo。jsp界面和action 就像mvc的V和C。service类似B层。DAO类似D层。Hibernate类似封装的底层。vo类似实体层。各层的引用叫注入。注入和页面跳转要通过spring和Struts
配置文件进行控制......
这是和MVC的ITOO相对比的自己的理解。
待进一步了解后,其实是这样的:
SSH不是一个框架,而是由三个框架(struts+spring+hibernate )组成。
其中使用Struts作为系统的整体基础架构,负责MVC分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。
其基本业务流程是:
1.在表示层中,首先通过JSP页面实现交互界面,负责接收请求(Request)和传送响应(Response)。
2.Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。
3.在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。
采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑与持久层的分离。
这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。
所以,分为5层:JSP交互界面、action、service、dao、vo。jsp界面和action 就像mvc的V和C。service类似B层。DAO类似D层。Hibernate类似封装的底层。vo类似实体层。各层的引用叫注入。注入和页面跳转要通过spring 和Struts 配置文件进行控制......
所以,“jsp界面和action 就像mvc的V和C”,就不太恰当了,因为MVC中,V、C之间直接传递数据,但在SSH中,有了Struts对其解耦。界面的请求以及数据返回都需要通过Struts根据配置文件进行相应的处理后,才能顺利执行。
service和DAO确实类似B层、D层。但在这应该就不要提层的概念了。通过这种方式理解是可以的。但毕竟七层、五层都不是专业的说法。
Hibernate类似封装的底层?其实规范的说:Hibernate是一个开放源代码的对象关系映射框架。提到对象关系映射,有没有想到EF?。所以,Hibernate,更贴切的是不是该理解为MVC的M。
配置文件进行控制......
这是和MVC的ITOO相对比的自己的理解。
待进一步了解后,其实是这样的:
SSH不是一个框架,而是由三个框架(struts+spring+hibernate )组成。
其中使用Struts作为系统的整体基础架构,负责MVC分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。
其基本业务流程是:
1.在表示层中,首先通过JSP页面实现交互界面,负责接收请求(Request)和传送响应(Response)。
2.Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。
3.在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。
采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑与持久层的分离。
这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。
所以,分为5层:JSP交互界面、action、service、dao、vo。jsp界面和action 就像mvc的V和C。service类似B层。DAO类似D层。Hibernate类似封装的底层。vo类似实体层。各层的引用叫注入。注入和页面跳转要通过spring 和Struts 配置文件进行控制......
所以,“jsp界面和action 就像mvc的V和C”,就不太恰当了,因为MVC中,V、C之间直接传递数据,但在SSH中,有了Struts对其解耦。界面的请求以及数据返回都需要通过Struts根据配置文件进行相应的处理后,才能顺利执行。
service和DAO确实类似B层、D层。但在这应该就不要提层的概念了。通过这种方式理解是可以的。但毕竟七层、五层都不是专业的说法。
Hibernate类似封装的底层?其实规范的说:Hibernate是一个开放源代码的对象关系映射框架。提到对象关系映射,有没有想到EF?。所以,Hibernate,更贴切的是不是该理解为MVC的M。
相关文章推荐
- LeetCode-9.Palindrome Number
- 2016SDAU课程练习三1015
- Asp.net 学习记录4
- Problem I: Catching Dogs
- [设计模式]之二:策略模式
- 最速下降法
- 笑话数据的请求
- Oracle试卷01
- [置顶] 对索伯列夫空间的一个浅显易懂的解释
- 大数加法 大数乘法
- JSP-九大内置对象
- Adobe Illustrator CS6 出现错误报告16
- php array访问
- Android四大组件+Intent详解
- 【学习排序】
- 关于javascript的闭包、模块化以及单例模式
- Java网络通信编程经验之谈
- 开源分布式有瑕疵服务器框架NF
- PAT (Basic Level) Practise (中文)1049. 数列的片段和(20)
- JavaWeb学习总结(二)——XML文件读取