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. idea取消vim模式

    在安装idea时选择了vim编辑模式,但是用习惯了eclipse,总是要拷贝粘贴,在idea中一直按ctrl+c和ctrl+v不起总用.于是想把vim模式关闭掉.方法:菜单栏:tools->vi ...

  2. Win7 VS2017 Boost Python入门

    闲来无事想练习下用Python作为游戏脚本绑定到C++,网上搜了下,Python文档有些例子,但是太过复杂,gayhub无意中看到有人用Boost Python绑定,简单粗暴,省时省力,记录备忘. 写 ...

  3. Github使用:使用github用作自己的免费域名

    1.创建一个新仓库 --- 删除里面的文件 --- Git上传文件到新仓库(必须有index.html) 2. 点击新仓库的setting,下滑找到GitHub Pages ---- 点击第一行的链接 ...

  4. uva10256(计算几何)

    省选前练模板系列: #include<cmath> #include<cstdio> #include<cstring> #include<iostream& ...

  5. qscoj 喵哈哈村的打印机游戏 区间dp

    点这里去看题 区间dp ,dp[l][r][d]代表从l到r的区间底色为d,具体看代码 第一次见到区间dp...两个小时对着敲了五遍终于自己敲懂了一遍ac #include<bits/stdc+ ...

  6. shell实例利用crontab自动清除日志

    shell实例利用crontab自动清除日志 程序运行会产生很多的日志,对于无用的日志手动删除比价麻烦,写一个自动执行的命令是很有必要的. 删除文件shell命令 find 对应目录 -mtime + ...

  7. 关于NGUI Shader 和 Draw Call的优化 & 模糊shader

    序: 1.项目过程中不可避免的需要用到大量Shader 和 UITexture,由于Ngui对Shader支持非常糟糕,导致项目drawCall异常的高 2.Panel裁剪无法裁剪自定义shader内 ...

  8. javaWeb中MVC的编程思想示例

    没有学习MVC之前我只写了一个Servlet类(Note_List.java),分层之后,我将这个类分成了5个类(NoteDao.java,,NoteDaoImpl.java,,NoteService ...

  9. ESP定律学习

    ESP = 堆栈平衡 ESP定理脱壳: (1)开始就点F8,注意观察OD右上角的寄存器中ESP有没突现(变成红色)(这只是一  般情况下,更确切的说我们选择的ESP值是关键句之后的第一个ESP值) ( ...

  10. Windows 10 IoT Core 17120 for Insider 版本更新

    今天,微软发布了Windows 10 IoT Core 17120 for Insider 版本更新,本次更新只修正了一些Bug,没有发布新的特性.相比于17115,又少了两个已知的问题. 一些已知的 ...