【SSH进阶之路】Struts + Spring + Hibernate 进阶开端(一)

转载 2015年11月17日 20:59:46

Long Long ago,就听说过SSH,起初还以为是一个东东,具体内容更是不详,总觉得高端大气上档次,经过学习之后才发现,不仅仅是高大上,更是低调奢华有内涵,经过一段时间的研究和学习SSH框架的基本原理与思想,总算接地气了。作为初学者,有点小小收获,想通过以博文的形式和大家一起分享,共同进步,在更新博文的过程中难免有认识不足的地方,还请各位大牛提出宝贵的建议,对于好的建议一定虚心接受,认真学习。

 

      这篇博文仅仅是SSH的开端简介,简单介绍一下SSH以及三种框架的整体概览,后面的博文会对各部分的内容一一进行详细的介绍,此系列博文会持续更新,也请大家关注我的博文。下面我们进入今天的正题:


什么是SSH


官方的说法:SSH是 struts+spring+hibernate的一个集成框架,是目前较流行的一种web应用程序开源框架。

 

个人的见解:SSH不是一个框架,而是把多个框架(Struts、Spring以及Hibernate)紧密的结合在一起,用于构建灵活、易于扩展的多层Web应用程序。


SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层(实体层)。

 

我们通过下面这张图说明一下,三种框架的关系以及所包含的内容,内容已经很详细了,在这里就不做过多的解释了。


                  


下面我们再详细看一下组成SSH的这三个框架。


Struts


1、什么是Struts?

 

      从简单性来看,Struts是这三个框架中最简单的一个,它是基于MVC的框架。它通过采用JavaServlet/JSP技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架,是MVC的一个具体实现或着说是MVC的一个具体产品。

 

2、Struts的核心构成

         

 

      Struts的核心同样也是MVC的核心,Struts是MVC的一个具体产品。

 

(1)Model

 

       由Action、ActionForm以及JavaBean组成,其中ActionForm用于将用户请求的参数,封装成为ActionForm对象,我们可以理解为实体,由ActionServlet转发给Action,Action处理用户请求,将处理结果返回到界面。

 

(2)View

 

       该部分采用JSP+大量的taglib,实现页面的渲染。

 

(3)Controller

 

       Controller是Struts的核心控制器,负责拦截用户请求,通过调用Model来实现处理用户请求的功能。

 

3、为什么使用Struts?


      使用Struts作为系统的整体基础架构,负责MVC的分离,将页面从业务逻辑分离出来,使用页面更加灵活多变,不会影响业务逻辑,简化了基于MVC的web应用程序的开发,因而使得开发更加高效。


Hibernate


1、什么是Hibernate?

 

      Hibernate是一个对象关系映射框架,它对JDBC进行了轻量级的封装,使得我们使用面向对象的思想操作关系型数据库。

 

2、Hibernate的核心构成

              

              

         

      这部分内容我们不做过多的解释,上面导图中的解释已经很简单明了了,如果还是不懂的话,可以上网查阅相关资料。


3、为什么使用Hibernate?


(1)Hibernate是JDBC的轻量级的对象封装,它使得与关系型数据库打交道变得更加轻松自如。

(2)对象化,它使得我们可以以面向对象的思想操作关系型数据库,简化了Dao层编码工作,使得开发更加对象化了。

(3)移植性更好,支持各种数据库,更换数据库异常简单,不需要改代码。

(4)实现了透明持久化,没有实现第三方框架或接口,没有侵入性,是一种轻量级框架。


Spring


1、什么是Spring?

 

      简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

 

2、Spring的核心构成

 

              


(1)IoC

 

       IoC就是IoC,不是什么技术,是一种设计模式。通过依赖注入的方式,由spring管理和控制对象之间的依赖关系,避免硬编码所造成的过度程序耦合。

 

(2)AoP

 

       通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。

 

(3)容器

 

       能管理对象的生命周期、对象与对象之间的依赖关系就是容器。


3、为什么使用Spring?


      没有Spring,Struts和Hibernate可以很好的运行,我称这样的模式为“独木桥”,但是有了Spring,Struts和Hibernate能够更好的结合在一起,协调的工作。我称这样的模式为“阳光大道”。Spring的核心思想是IoC和AOP,Spring使得管理对象更加方便,极大的降低组件之间的耦合度,实现了软件各层之间的解耦。Spring的优点还有很多,我们就不再累述了。


总结


      SSH不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离,耦合度降低,系统的灵活性更好,可复用性高。同时,框架为我们提供了一些基础性的服务,使我们的开发更加简单,大大提高开发效率。


下篇博客,我们介绍Struts的基本原理+简单的登录实例(附源码)

【SSH进阶之路】Hibernate系列——总结篇(九)

这篇博文是Hibernate系列的最后一篇,既然是最后一篇我们进行一下从头到尾,整体上的总结,将这个系列的内容融会贯通。。。...
  • jiuqiyuliang
  • jiuqiyuliang
  • 2014年11月22日 08:18
  • 17067

【SSH进阶之路】Struts + Spring + Hibernate 进阶开端(一)

Long Long ago,就听说过SSH,起初还以为是一个东东,具体内容更是不详,总觉得高端大气上档次,经过学习之后才发现,不仅仅是高大上,更是低调奢华有内涵,经过一段时间的研究和学习SSH框架的基...
  • jiuqiyuliang
  • jiuqiyuliang
  • 2014年08月29日 07:56
  • 20072

【SSH进阶之路】Hibernate基本映射(三)

【SSH进阶之路】Hibernate基本原理(一) ,小编介绍了Hibernate的基本原理以及它的核心,采用对象化的思维操作关系型数据库。 【SSH进阶之路】Hibernate搭建开发环境+简单实例...
  • jiuqiyuliang
  • jiuqiyuliang
  • 2014年10月17日 08:19
  • 35834

Spring boot 进阶之路

hello,大家好 我们就直奔主题吧(Spring boot 是什么,应用场景,等等我这里就不说了,我喜欢直接上技术)。 1、前言 第一步我想大家都应该知道吧。导包?? No 不是,...
  • wxw1372807260
  • wxw1372807260
  • 2017年02月10日 11:47
  • 690

java工程师进阶之路

java工程师进阶之路,努力学习20周,奠定CTO 下面是需要掌握的知识点:...
  • u011159417
  • u011159417
  • 2017年03月03日 17:18
  • 967

Struts + Spring + Hibernate 进阶开端(一)

这篇博文仅仅是SSH的开端简介,简单介绍一下SSH以及三种框架的整体概览,后面的博文会对各部分的内容一一进行详细的介绍,此系列博文会持续更新,也请大家关注我的博文。下面我们进入今天的正题: ...
  • CHBSRZF
  • CHBSRZF
  • 2016年01月08日 15:27
  • 232

Android程序员的进阶之路

本文主要论述的是android程序员的进阶之路,博主本人就是一名android开发攻城狮,所以这里讲述的大多数是android开发攻城狮的技术进阶之路,如有问题请多指正。大家都知道程序员之中有有菜鸟程...
  • qq_23547831
  • qq_23547831
  • 2016年01月28日 17:03
  • 11509

java进阶之路

啥也不说了,都在图里了。希望可以给大家的职业规划一些提示,尤其是写了几年程序,却越来越迷茫的同学。 第一阶段 技术名称 技术内容 J2SE(java基础...
  • xiaomin1991222
  • xiaomin1991222
  • 2016年03月10日 16:05
  • 922

架构师进阶之路

选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们。一、Java编程入门类对...
  • wu6660563
  • wu6660563
  • 2016年05月25日 15:59
  • 1160

c/c++进阶之路

C/C++从入门到高手所有必备PDF书籍收藏,喜欢的朋友支持下吧~ C: 《C和指针》- PDF高清版 下载地址:http://www.fishc.com/a/book/C/821....
  • muyimo
  • muyimo
  • 2014年08月09日 16:14
  • 419
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【SSH进阶之路】Struts + Spring + Hibernate 进阶开端(一)
举报原因:
原因补充:

(最多只允许输入30个字)