您的位置:首页 > 编程语言 > Java开发

Java基础白话文_SSH框架—作为初窥门径的Coder,用生活场景理解SSH框架

2017-08-02 14:01 459 查看
作为初窥门径的Coder,如何理解理解SSH框架

书上说:SSH是 struts+spring+hibernate的一个集成框架,是目前比较流行的一种Web应用程序开源框架。

集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、

维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,

利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,

将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access

Objects)接口,并给出Hibernate的DAO实现,

采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。

听不懂书上说的,那我们用实际生活场景复原一下:

声明:以下言论只是为了浅显的认识SSH框架,言论不是很严谨,且部分比较片面。如有误导恳请指教!

假如说我们要开个饭店(java web 项目),先想想怎么个经营模式(SSH框架);

那好,我需要有一个冰箱(Mysql OR Oracle),一个配菜员(model),一个厨师(dao & service),一个传菜员(action),一个餐桌(jsp),点餐员(js),客户(user)。


好啦,开张大吉!

客户(user)坐在餐桌(jsp),告诉点餐员(js):我要一份土豆牛肉盖饭!

点餐员(js)收到数据,告诉传菜员(action):土豆牛肉盖饭一份!

传菜员(action)告诉厨师(dao & service);

然后厨师告诉配菜员,我需要哪些配菜!

配菜员(model)配菜:土豆,牛肉,米饭!(这就是数据库里的数据字段,就是表的实体类!)

厨师(dao & service):做菜!(先放油,再放葱,炒牛肉……)

出锅!

给传菜员(action),传菜员再把-土豆牛肉盖饭-给点餐员(js)

点餐员(js)再放在用户面前的餐桌(jsp)。

结账走人!

这里的点餐员(js),其实就是扮演着一个页面交互的过程。而加上传菜员,他们之间就形成了数据的交互性。此时这个模式就是简化的struts框架!


书上说:Struts是MVC的一种实现,它很好的结合了Jsp,Java Servlet,Java Bean ,Taglib等技术。

那Hibernate怎么理解,从上面的场景可以看到,冰箱作为数据库,里面存放的土豆,牛肉,米饭作为对象model(java原则:万物皆对象)。


而且配菜员(model),与厨师(dao)共同完成对数据库数据的操作-做菜!没看懂的话,把下面这句话多读几遍。

书上说:Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。

那spring到底在这个过程中,起到什么样的作用?
那这个问题可就有意思了。可以想一下,上面我提到struts与hibernate,他们之间的衔接点在哪?就是说,如果我拿掉一个点,这个客户就永远吃不上土豆牛肉盖饭了。
对,就是厨师,厨师请假了,传菜员找不到厨师,配菜员跟冰箱只能愣着!所以,这就是spring的作用。整合struts与hibernate。


书上说:Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,

而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)

进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

**最后,我想知道你能不能从这里学到点东西。写这些的目的也只是为了让初窥门径的小Java攻城狮能够浅显的了解SSH。本无意写这些,无奈小女票追着问。书本上的理论对她太难理解了。还是形象一点的描述比较易于理解。**


最后赋张心酸的截图!



还请各路大神路过指教,如有描述不当,立即更改!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息