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

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/qq_29694039/article/details/76576500

作为初窥门径的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。本无意写这些,无奈小女票追着问。书本上的理论对她太难理解了。还是形象一点的描述比较易于理解。**

最后赋张心酸的截图!
这里写图片描述

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

猜你喜欢

转载自blog.csdn.net/qq_29694039/article/details/76576500
今日推荐