SSH——框架简介

前言

  最近做网上商城发现缺少了对SSH的理论知识,在实践的过程中还是很难理解很多东西!所以今天把理论知识做个简单了解!本篇博客主要对SSH做个简单介绍,主要是介绍基于MVC软件开发模式的SSH框架!详情请见下文!

正文

  SSH的实践正在进行中,如果让我用一些实例来讲解SSH难度还很大,所以下面我就简单的在理论上讲讲我目前对SSH的了解,然后再分别说说组成SSH的Struts、Spring、Hibernate。

SSH

1.是啥
  SSH是Struts+Spring+Hibernate的一个集成框架,是目前比较流行的一种web应用程序开源框架!其中Struts控制逻辑关系,Spring解耦,Hibernate操作数据库

2.优点
★各层分工明确,层与层之间解耦
★Hibernate避免了JDBC连接数据库的冗余繁杂
★spring管理用配置文件对象的实例化,更灵活方便

3.框架
  这张图的原生是我从网上查到的,我查了很多关于SSH的资料,唯独觉得这张图能表达我目前对SSH的浅层了解,所以我加了一点点自己的想法,这张图可能不太正确,但是它表达了我现在的理解,后期我做了更多的了解之后还会继续更新这张图!
SSH——框架简介
【问题】
★——VO的位置我不知道我放的对不对???
★——原图中“Service”那写的是“业务逻辑组件”,可是我觉得“业务逻辑组件”写的有点大,所以暂时改成了Service???
★——刚开始看到持久层的PO时我以为博主写错了,后来一查才知道是小菜我太low
【解问】
SSH——框架简介

Struts

1.是啥?
  struts也是一种开源框架,使用它的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。在SSH中充当表示层的角色。
2.Struts框架流程图
  这张图是我在百科上找的,翻译了一下下,根据自己目前单独对Struts的了解,写的话很多文章都写过,我还整理不出来自己能够消化之后的知识与大家分享,所以暂时就先不多做解释了!
SSH——框架简介

Spring

1.是啥
  Spring是一个分层的JavaSE/EE一站式 轻量级开源框架,解决业务逻辑层和其他各层的松耦合问题。其两大核心就是IOC((Inversion of control))控制反转和AOP(Aspect-Oriented Programming)面向切面编程

2.特征
【IOC】
  官方:控制权由对象本身转向容器,由容器根据配置文件去创建实例并创建各个实例之间的依赖关系
  我说:以前使用一个类啥的都必须先用new实例化一下,有的时候要new好多次,太麻烦了,spring对这方面做了改进,用配置文件来管理实例。

【AOP】
  允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发。应用对象只实现它们应该做的,完成业务逻辑,不负责其它的系统级关注点,例如日志或事务支持。

【容器】
  用于包含并管理应用对象的配置和生命周期

【框架】
  可以将简单的组件配置、组合成为复杂的应用

【MVC】
  spring是实现MVC方式的常见框架之一
SSH——框架简介

Hibernate

1.官方解说:
  Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的ORM框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

2.小菜解说:
★★【持久化由来】
  小菜在一篇文章中看到有人这样介绍Hibernate——Hibernate值译过来是“冬眠”的意思,冬眠冬眠一直都在睡觉,对于人或者小动物来说他的睡眠是持久的。所以呀,Hibernate的一个真正意义就来了,持久化(就是把数据保存到可以永久保存东西的存储设备中,如磁盘;另外“持久化”是将程序数据在持久状态和瞬时状态间转换的机制,如JDBC、IO文件也是一种持久化机制)

  那么问题来了,为啥JDBC也是一种持久化机制,为啥还要出现Hibernate呢?
  依据小菜查的资料来说,出现Hibernate的原因是:以前的持久层开发存在很多冗余,如:各种JDBC语句,connection的管理,所以出现了Hibernate把JDBC封装了一下,这样我们不用操作数据,直接操作它就可以了。

★★【ORM】
  ORM(Object Relational Mapping)对象关系映射,是一种解决面向对象与关系数据库存在的互不匹配的现象的技术。也就是它通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。

链接小分享

Hibernate相关总结

小结

  小菜觉得学习SSH应该实践与理论相结合,两者少了哪个都不可以!最后小菜想说:有哪位美女或者帅哥对SSH框架有好的学习建议或者想要更多的交流的可以找我哟!