【SSH学习笔记】浅谈SSH框架

说在前面

本学期咱们有一门课叫作Java EE,由陈老师所授,主要讲的就是Java EE 中的SSH框架。 因为陈老师授课风格以及本身的缘由致使学了整整一学期不知道在讲什么,因此才有了本身从新学习总结的博客,其中可能会有一些错误和描述解释不恰当的地方,望读者能及时提出。前端


什么是SSH框架

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

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

Java EE架构大体分为如下几个层次:web

  • 实体层(POJO层)
  • 数据访问层(DAO层)
  • 业务逻辑层(Service层)
  • 控制器层(Controller层)
  • 表现层(View层)

其中SSH框架的系统从职能上分大体能够分为四层:表示层业务逻辑层数据持久层域模块层(实体层)spring

struts

由SSH构建系统的基本业务流程是:数据库

一、在表示层中,首先经过JSP页面实现交互界面,负责传送请求(Request)和接收响应(Response),而后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。编程

二、在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协做对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提高系统性能和保证数据的完整性。设计模式

三、在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。安全

采用上述开发模型,不只实现了视图、控制器与模型的完全分离,并且还实现了业务逻辑层与持久层的分离。这样不管前端如何变化,模型层只需不多的改动,而且数据库的变化也不会对前端有所影响,大大提升了系统的可复用性。并且因为不一样层之间耦合度小,有利于团队成员并行工做,大大提升了开发效率。网络


浅谈Struts

什么是Struts

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

Struts的核心构成

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

(1)Model

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

(2)View

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

(3)Controller

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

为何使用Struts

首先,Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用做实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特色,作了相应的变化与扩展,减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化

另外, struts具备页面导航功能,使系统的脉络更加清晰。经过一个配置文件,便可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤为是当另外一批开发者接手这个项目时,这种优点体现得更加明显。


浅谈Hibernate

什么是Hibernate

Hibernate是一种Java语言下的ORM(Object-Relation Mapping)的解决方案的一种框架,实现了数据持久化功能。Hibernate能将对象模型所表示的JOPO实体映射到基于SQL的关系模型结构中,对JDBC进行了最大限度地对象封装,使得程序员能够经过面向对象地编程思惟来操做数据库。

其实在Struts2里面也是用到了不少映射的思想,好比:execute()方法,这个之后再例子中你们能很好地体会到,这里就不详谈。

Hibernate的核心构成

Hibernate

  • 会话工厂(SessionFactory)

    配置对象被用于创造一个SessionFactory对象,使用提供的配置文件为应用程序依次配置Hibernate,并容许实例化一个会话对象。SessionFactory是一个线程安全对象并由应用程序全部的线程所使用。

    SessionFactory是一个重量级对象因此一般它都是在应用程序启动时创造而后留存为之后使用。每一个数据库须要一个SessionFactory对象使用一个单独的配置文件。因此若是你使用多种数据库那么你要创造多种SessionFactory对象。

  • 会话(Session)

    一个会话被用于与数据库的物理链接。Session对象是轻量级的,并被设计为每次实例化都须要与数据库的交互。持久对象经过 Session
    对象保存和检索。

    Session 对象不该该长时间保持开启状态由于它们一般状况下并不是线程安全,而且它们应该按照所需创造和销毁。

  • 事务(Transaction)

    事务对象指定工做的原子单位,它是一个可选项.org.hibernate.Transaction接口提供事务管理的方法。

  • Query 对象

    Query对象使用SQL或者Hibernate查询语言(HQL)字符串在数据库中来检索数据并创造对象。一个查询的实例被用于连结查询参数,限制由查询返回的结果数量,并最终执行查询。

  • Criteria 对象

    Criteria对象被用于创造和执行面向规则查询的对象来检索对象。

  • Configuration 对象

    配置对象是你在任何Hibernate应用程序中创造的第一个Hibernate对象,而且常常只在应用程序初始化期间创造。它表明了Hibernate所需一个配置或属性文件,配置对象提供了两种基础组件。

    数据库链接:由Hibernate支持的一个或多个配置文件处理。这些文件是hibernate.properties和hibernate.cfg.xml。

    类映射设置:这个组件创造了 Java类和数据库表格之间的联系。


浅谈Spring

Spring是J2EE应用程序框架,是轻量级的IoC(Inversion of Control,控制反转)和AOP(Aspectted Programming,面向切面)的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器,能够单独使用,也能够和Struts框架,Hibernate框架等组合使用。

Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了建立、配置和管理 bean 的方式。
Spring

  • IoC(Inversion of Control)控制反转

    对象建立责任的反转,在spring中BeanFacotory是IoC容器的核心接口,负责实例化,定位,配置应用程序中的对象及创建这些对象间的依赖。

    XmlBeanFacotory实现BeanFactory接口,经过获取xml配置文件数据,组成应用对象及对象间的依赖关系。

    spring中有三种注入方式,一种是set注入,一种是接口注入,另外一种是构造方法注入。

  • AOP面向切面编程

    面向方面的编程,即AOP,是一种编程技术,它容许程序员对横切关注点或横切典型的职责分界线的行为(例如日志和事务管理)进行模块化。AOP
    的核心构造是方面,它将那些影响多个类的行为封装到可重用的模块中。

为何使用Spring

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


后言

这里只是浅谈了一些关于SSH框架的基础知识,便于你们宏观来了解认识什么是SSH框架,其实要想体会框架的精妙之处还得本身作一作简单例子才能体会,后续我会将我作的小例子以我我的学习过程分享出来。

本文资源图文部分来源于网络,这里特别感谢

相关文章
相关标签/搜索