【SSH进阶之路】Struts + Spring + Hibernate 进阶开端(一)
版权声明:本文为博主原创文章,未经博主允许不得转载。
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技术,实现了基于JavaEEWeb应用的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进阶之路】Struts + Spring + Hibernate 进阶开端(一)的更多相关文章
- Struts+Spring+Hibernate进阶开端(一)
入行就听说SSH,起初还以为是一个东西,具体内容就更加不详细了,总觉得高端大气上档次,经过学习之后才发现,不仅仅是高大上,更是低调奢华有内涵,经过一段时间的研究和学习SSH框架的基本原理与思想,总算接 ...
- Struts + Spring + Hibernate 进阶开端(一)
Long Long ago,就听说过SSH,起初还以为是一个东东,具体内容更是不详,总觉得高端大气上档次,经过学习之后才发现,不仅仅是高大上,更是低调奢华有内涵,经过一段时间的研究和学习SSH框架的基 ...
- Eclipse下面的Maven管理的SSH框架整合(Struts,Spring,Hibernate)
搭建的环境:eclispe下面的maven web项目 Struts: 2.5.10 Spring: 4.3.8 Hibernate: 5.1.7 .Final MySQL: 5. ...
- 【SSH进阶之路】Spring的AOP逐层深入——采用注解完成AOP(七)
上篇博文[SSH进阶之路]Spring的AOP逐层深入——AOP的基本原理(六),我们介绍了AOP的基本原理,以及5种通知的类型, AOP的两种配置方式:XML配置和Aspectj注解方式. 这篇我们 ...
- 【SSH进阶之路】Spring的IOC逐层深入——为什么要使用IOC[实例讲解](二)
上篇博客[SSH进阶之路]Spring简介,搭建Spring环境——轻量级容器框架(一),我们简单的介绍了Spring的基本概念,并且搭建了两个版本的Spring开发环境,但是我们剩下了Spring最 ...
- 用eclipse搭建SSH(struts+spring+hibernate)框架
声明: 本文是个人对ssh框架的学习.理解而编辑出来的,可能有不足之处,请大家谅解,但希望能帮助到大家,一起探讨,一起学习! Struts + Spring + Hibernate三者各自的特点都是什 ...
- SSH(struts+spring+hibernate)常用配置整理
SSH(struts+spring+hibernate)常用配置整理 web.xml配置 <?xml version="1.0" encoding="UTF-8&q ...
- Struts+Spring+Hibernate、MVC、HTML、JSP
javaWeb应用 JavaWeb使用的技术,比如SSH(Struts.Spring.Hibernate).MVC.HTML.JSP等等技术,利用这些技术开发的Web应用在政府项目中非常受欢迎. 先说 ...
- velocity+spring mvc+spring ioc+ibatis初试感觉(与struts+spring+hibernate比较)
velocity+spring mvc+spring ioc+ibatis框架是我现在公司要求采用的,原因是因为阿里巴巴和淘宝在使用这样的框架,而我公司现在还主要是以向阿里巴巴和淘宝输送外派人员为 主 ...
随机推荐
- oracle database 9i/10g/11g 编程艺术 源代码下载
背景 在找这本书的源码,搜到提供的都是需要C币下载的.比较固执(其实是穷). 在这本书的前言中提到源代码可以在 www.appress.com 上下载. 下面是该书在该网站上的链接: https:// ...
- 12种开源Web安全扫描程序
转自:https://blog.csdn.net/wh211212/article/details/78620963 赛门铁克的一个有趣的报告显示,76%的被扫描网站有恶意软件 如果您使用的是Word ...
- [ZJOI2009]假期的宿舍(二分图匹配)
题目描述 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如 A 和 B 都是学校的学生,A 要回家,而 C 来看B,C 与 A 不认识. ...
- Mac 字典扩充包 包括 app
https://pan.baidu.com/s/1htKUaiWZFZJGO6w9azsbsg
- Kaggle比赛总结
做完 Kaggle 比赛已经快五个月了,今天来总结一下,为秋招做个准备. 题目要求:根据主办方提供的超过 4 天约 2 亿次的点击数据,建立预测模型预测用户是否会在点击移动应用广告后下载应用程序. 数 ...
- WSO2 API Manager中host Ip 不正确的问题解决方法
问题: 根据官方的Quick start的教程,部署完AM后,添加的API的host Ip不正确,为localhost或者服务器上的其他虚拟ip. 安装版本: WSO2AM 2.6.0 环 ...
- day 15 装饰器
装饰器(重点,难点) 开闭原则: 对功能的扩展开放 对代码的修改是封闭的 在目标函数前和后插入一段新的代码.不改变原来的代码 通用装饰器写法: # 存在的 ...
- kubernetes理论基础#开始入坑啊!
什么是kubernetes 首先,他是一个全新的基于容器技术的分布式架构领先方案.Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg).在Docker技术的基础上, ...
- Java学习笔记二十七:Java中的抽象类
Java中的抽象类 一:Java抽象类: 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就 ...
- Java设计模式(1)——创建型模式之简单工厂模式(Simple Factory)
设计模式系列参考: http://www.cnblogs.com/Coda/p/4279688.html 一.概述 工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高 ...