spring是什么?

  • spring是一个开源框架,最初是为了解决企业应用开发的复杂性而创建的,但现在已经不止应用于企业应用。
  • 是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

    - 从大小与开销两方面而言Spring都是轻量的。

    - 通过控制反转(IoC)的技术达到松耦合的目的。

    - 提供了面向切面编程的丰富支持,允许通过允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发。应用只实现业务逻辑即可,并不负责其它的系统级关注点。

      解释:比如说,做一个商品的管理,商品的入库、出库就是业务逻辑,系统服务是,比如说入库、出库都要统一的日志的记录,和事物的管理那么这种就属于系统服务,它是和具体的业务逻辑是无关的,无论什么样的业务都会使用到的服务都把它称为系统服务。

    - 包含并管理应用对象的配置和生命周期,这个意义上是一种容器。

    - 将简单的组件配置、组合成为复杂的应用,这个意义上是框架。

为什么是Spring?

  • 在Spring上开发应用简单
      我们把对象的创建、销毁,对象的生命周期交给Spring来做,所以说是简单的。
  • 在Spring上开发应用方便
      我们把所有的对象管理交给了Spring,到用的时候,只需要告诉Spring你想要什么实例,它就会给你什么实例,所以非常方便的。
  • 在Spring上开发应用快捷
      正是因为Spring替我们管理了这些对象,而且由于它面向接口编程的理念的应用,使得我们在开发的过程中是快捷的,省去了我们管理对象的过程。

  所以Spring带来了复杂JavaEE开发的春天!

Modules

从这幅图中我们可以看出来Spring的整体架构,主要分为六大模块

Core Container

  核心部分分为4大块,spring-core, spring-beans, spring-context, spring-expression. 其中core和bean是整个框架的核心,提供了基础的DI和IoC功能。 Context建立在core和beans模块之上,提供一种类似JNDI且以框架的方式来操作对象的方式。Context模块从beans模块继承它的功能同时增加了国际化支持,如资源绑定等,同时,Context模块也支持JavaEE功能,如EJB,JMX和基本的远程调用。ApplicationContext接口是context模块的焦点。expression是一种很强大的expression language,支持在运行时查询和操作对象的属性,我们会在后面的文章中举些例子来说明spring expression language的用法。

AOP and instrumentation

  Aop模块提供了面向切面编程的实现,和AspectJ集成。

Messaging

  Messaging是spring4新增加的模块,包含了一部分主要的基于message的应用的实现。

Data Access/Integration

  Data access顾名思义,是spring对数据层提供的支持,是功能比较丰富的模块。提供了包括JDBC,事物,ORM,JMS等一系列实现。

Web

  Web模块主要提供面向web的一些实现,例如多文件上传,servlet监听器以及spring mvc方面的支持。

Test

  Test模块主要是针对spring的各个模块做各种各样的测试,包括单元测试、集成测试等等。

Spring作用

  •  容器
  •  提供了对多种技术的支持
      - JMS
      - MQ支持
      - UnitTest
      - 。。。。。。
  •  AOP(事物管理、日志等)
  •  提供了众多方便应用的辅助类(JDBC Template等)
  •  对主流应用框架(Hibernate等)提供了良好的支持

适用范围

  •  构建企业应用(SpringMVC+Spring+Hibernate/MyBatis(ibatis))
  •  单独使用Bean容器(Bean管理)
  •  单独使用AOP进行切面处理
  •  其他的Spring功能,如:对消息的支持等
  •  在互联网中的应用。

文章出自:艺意

Spring概况(一)的更多相关文章

  1. Spring学习一----------Spring概况

    © 版权声明:本文为博主原创文章,转载请注明出处 Spring概况 Spring是为了解决企业应用开发的复杂性而创建的. Spring是一种轻量级的控制反转(IOC)和面向切面(AOP)的容器框架. ...

  2. Spring概况

    1. Spring是什么 Spring是一个开源框架,为了解决企业应用开发的复杂性而创建的,但现在已经不止于企业应用. 是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架. ——从大小与开 ...

  3. spring框架设计理念(上)

    一.前言    spring的应用非常的广泛,在开发过程中我们经常接触,可能会有一种感觉:对spring即熟悉又陌生,熟悉体现在我们几乎每天都在使用,对spring的IOC.AOP功能都有了基本的了解 ...

  4. Spring详解篇之IoC控制反转

    ###一.Spring概况 spring是一个开源框架 是一个轻量的控制反转和面向切面的容器框架 大小和开销都是轻量的. 通过控制反转技术可以达到松耦合的目的 切面编程,允许通过分离应用的业务逻辑. ...

  5. Spring入门篇——第1章 概述

    第1章 概述 本章对课程的情况进行介绍,并介绍框架和Spring概况. 1-1 Spring入门课程简介 1-2 Spring概况 1-3 Spring框架

  6. 基于SpringMVC+Spring+MyBatis实现秒杀系统【概况】

    前言 本教程使用SpringMVC+Spring+MyBatis+MySQL实现一个秒杀系统.教程素材来自慕课网视频教程[https://www.imooc.com/learn/631].有感兴趣的可 ...

  7. spring源码分析之spring-web remoting模块概况及基本概念

    spring-web总体分为三部分:caucho.httpinvoker.jaxws,其总体构造图如下: uml结构: 先看看网上搜索到的上述实现的原理吧:Spring RMI,Hessian/Bur ...

  8. Spring的概况

    ----------------siwuxie095 Spring 的简介 Spring 是一个轻量级 控制反转(IoC) 和 面向切面(AOP) 的容器框架 年,它是为了解决企业应用开发的复杂性而诞 ...

  9. spring remoting源码分析--Hessian分析

    1. Caucho 1.1 概况 spring-remoting代码的情况如下: 本节近分析caucho模块. 1.2 分类 其中以hession为例,Hessian远程服务调用过程: Hessian ...

随机推荐

  1. java32

    1.抽象类必须有子类才有意义 2.子类中会默认有构造器来调用父类的构造器 3.接口:表示一种规范 interface 接口名(命名规则:在名称前加上I后加上able){ } -2接口也生成对应的字节码 ...

  2. Scrum冲刺阶段5

    成员今日完成的任务 人员 任务 何承华 学习后端设计 陈宇 后端设计 丁培辉 学习后端设计 温志铭 日程添加界面设计(后半段设计) 杨宇潇 日程添加界面设计(后半段设计) 张主强 服务器构建学习 成员 ...

  3. monkey测试样例

    我们通过在CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试了.首先,我们准备了一个有bug的项目CityWeather:通过测试这个项目(源码在附件文件夹中) ...

  4. zepto 源码 $.contains 学习笔记

    $.contains(parent,node)  返回值为一个布尔值 ==> boolean parent,node我们需要检查的节点检查父节点是否包含给定的dom节点,如果两者是相同的节点,返 ...

  5. js常用通用方法

    验证身份证详细方法 function isCardNo(pId) { var arrVerifyCode = [1, 0, "x", 9, 8, 7, 6, 5, 4, 3, 2] ...

  6. PHP安装+使用

        curl -s http://php-osx.liip.ch/install.sh | bash -s 5.4       ...... Extracting usr/local/php5-5 ...

  7. Day03(黑客成长日记)------>元祖及列表的增减改查

    #昨日作业解析: # s = 'sadagwa'# i = 0# while i < len(s):# s1 = s[i]# print(s1)# i += 1# while使用技巧,先找递增变 ...

  8. 命令更新emacs

    sudo apt-add-repository -y ppa:adrozdoff/emacs sudo apt update sudo apt install emacs25

  9. Linux命令中:rsync和scp之间的区别

    scp是把文件全部复制过去,当文件修改后还是把所有文件复制过去, rsync 第一次是把所有文件同步过去,当文件修改后,只把修改的文件同步过去 rsync -av 10.251.205.8:/usr1 ...

  10. ubuntu16 gitlab的简单安装

    1.安装好ubuntu的ssh服务,使用xshell登录虚拟机 2.下载安装包:  wget -c https://downloads-packages.s3.amazonaws.com/ubuntu ...