关于对Spring框架的详解


在这里插入图片描述

基本概念

  Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。Spring的一个最大的目的就是使JAVA EE开发更加容易。同时,Spring之所以与Struts、Hibernate等单层框架不同,是因为Spring致力于提供一个以统一的、高效的方式构造整个应用,并且可以将单层框架以最佳的组合揉和在一起建立一个连贯的体系。可以说Spring是一个提供了更完善开发环境的一个框架,可以为POJO(Plain Ordinary Java Object)对象提供企业级的服务。

Spring的形成

  Spring的形成,最初来自Rod Jahnson所著的一本很有影响力的书籍《Expert One-on-One J2EE Design and Development》,就是在这本书中第一次出现了Spring的一些核心思想,该书出版于2002年。另外一本书《Expert One-on-One J2EE Development without EJB》,更进一步阐述了在不使用EJB开发JAVA EE企业级应用的一些设计思想和具体的做法。有时间了可以详细的研读一下。当然Spring框架为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。

主要模块

主要包括以下七个模块:
  (1)Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等);
  (2)Spring Core:核心类库,所有功能都依赖于该类库,提供IOC和DI服务;
  (3)Spring AOP:AOP服务(包含了使用AOP特性时所使用到的类);
  (4)Spring Web:提供了基本的面向Web的综合特性,提供对常见框架如Struts2的支持,Spring能够管理这些框架,将Spring的资源注入给框架,也能在这些框架的前后插入拦截器;
  (5)Spring MVC:提供面向Web应用的Model-View-Controller,即MVC实现。
  (6)Spring DAO:对JDBC的抽象封装,简化了数据访问异常的处理,并能统一管理JDBC事务;
  (7)Spring ORM:对现有的ORM框架的支持;
在这里对于Spring MVC模块进行详细介绍:
  MVC 模式(Model–view–controller)是软件工程中的一种软件架构模式,它把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),简而言之在本次项目当中的思想在于:把整个项目分成多个部分的耦合; 并且主要分为: M模型块,即抽象父类;V视图块,打印出用户交互信息;C控制块:用于实现对数据的各种操作。

三层架构

同时也可以这样理解标准三层架构:

  (1)数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务.

  (2)业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层是对这些积木的搭建。具体的讲主要负责对数据层的操作。也就是说把一些数据层的操作进行组合。

  (3)表示层:主要表示WEB方式,如果逻辑层是相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。

Spring的优点

关于Spring同时也具有以下几个优点:
  (1)方便解耦,简化开发:Spring就是一个大工厂,可以将所有对象创建和依赖的关系维护,交给Spring管理。
  (2)AOP编程的支持:Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能。
  (3)声明式事务的支持:只需要通过配置就可以完成对事务的管理,而无需手动编程。
  (4)方便程序的测试:Spring对Junit4支持,可以通过注解方便的测试Spring程序。
  (5)方便集成各种优秀框架:Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架的直接支持(如:Struts、Hibernate、MyBatis等)。
(6)降低Java EE API的使用难度:Spring对Java EE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低。

对于Spring 框架中都用到设计模式:

  (1)工厂模式:Spring使用工厂模式,通过BeanFactory和ApplicationContext来创建对象,是一种为访问类提供一个创建一组相关或相互依赖对象的接口,并且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。
  (2)单例模式:指一个类只有一个实例,且该类能自行创建这个实例的一种模式,Bean默认为单例模式。
  (3)策略模式:例如Resource的实现类,针对不同的资源文件,实现了不同方式的资源获取策略。
  (4)代理模式:分为静态代理模式(程序运行前就已经存在代理类的字节码文件)和动态代理模式(代理类在程序运行时创建的代理方式),Spring的AOP功能用到了JDK的动态代理和CGLIB字节码生成技术
  (5)模板方法:可以将相同部分的代码放在父类中,而将不同的代码放入不同的子类中,用来解决代码重复的问题。比如RestTemplate, JmsTemplate, JpaTemplate
  (6)适配器模式:Spring AOP的增强或通知(Advice)使用到了适配器模式,Spring MVC中也是用到了适配器模式适配Controller
  (7)观察者模式:Spring事件驱动模型就是观察者模式的一个经典应用。
  (8)桥接模式:可以根据客户的需求能够动态切换不同的数据源。比如我们的项目需要连接多个数据库,客户在每次访问中根据需要会去访问不同的数据库
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/S_yyuan/article/details/123161507