初识Spring

                             初识Spring_第1张图片

一、定义

 

        Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架

 

二、重点介绍IoCAOP

 

         Spring 框架是一个分层架构,由7个定义良好的模块组成。在这里值得一提的是组成 Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。这意味着你能选择使用它孤立的任何部分,它的架构仍然是内在稳定的。

 

                                        初识Spring_第2张图片

 

          

        由于Spring的核心是就是控制反转(IoC)和面向切面(AOP),所以在这里重点给大家介绍IoC容器,也就是Spring Core的模块和AOP模块。

 

1、IOC容器

 

         这篇博客《初识控制反转(IoC)》中写了IoC的思想,而在这里我们就要说一个具体的实现,也就是IOC思想的实现,IoC容器。

        Spring 的IoC容器主要使用DI方式实现的,不需要主动查找,对象的查找,定位和创建全部由容器管理。

说一下这样做的好处:

  • 大量减少了Factory和Singleton的数量,使代码层次更加清晰。
  • 轻量级的容器,没有侵入性,不需要依赖容器的API,也不需要实现一些特殊的接口。
  • 提供了AOP生命式服务能力,可以针对POJO对象提供声明式服务能力。
  • 对于资源,如Hibernate Session或JDBC Connection我们不再负责开启和关闭。
  • 解耦合,将耦合推迟到了配置文件中,发生了变化也更容易控制。

 

2、AOP面向切面

 

        在软件业,AOP为Aspect OrientedProgramming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。也可以这样理解,面向对象编程(OOP)是从静态角度考虑程序结构,面向切面编程(AOP)是从动态角度考虑程序运行过程。

        AOP一般处理一些具有横切性质的系统性服务,如事物管理、安全检查、缓存、对象池管理等。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

        另外,Spring 中 AOP 代理由 Spring 的 IoC 容器负责生成、管理,其依赖关系也由 IoC容器负责管理。在这里我们只是对AOP作为一个概念的了解,后续我会针对AOP做具体的研究,到时候再细说哈。

 

三、结束语

 

        Spring起到的作用,就像UNIX和Windows这样传统意义上的操作系统。只不过,按照个人的理解,它们不同在于,我们熟知的传统操作系统关心的是存储,计算,通信,外围设备这些物理资源的管理,并在管理这些资源的基础上,为应用程序提供一个统一平台和服务接口;而像Spring这样的应用平台,它们关心的是在Java企业应用中,对包括那些像Web应用,数据持久化,事务处理,消息中间件,分布式计算等等这些,为企业应用服务的抽象资源的统一管理,并在此基础上,为应用提供一个基于POJO的开发环境。

       从某种意义上看,它们都起到一个资源协调,平台支持,以及服务集成的作用。

     PS:结束语是从《Spring技术内幕》这篇文章看来的,觉得这个比喻很形象,所以贴过来与大家分享一下)


你可能感兴趣的:(初识Spring)