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. 字符串API练习三则

    (1)按照Ascii码字典的顺序排列字符串.核心API:int compareTo(String),若大于则返回1,小于返回-1,等于返回0. class StringArray { static v ...

  2. web端常见测试点

    由于web端应用于用户直接相关,又通常需要承受长时间的大量操作,因此web项目的功能和性能都必须经过可靠的验证.web端测试常见的有界面测试.功能测试.性能测试.可用性(接口)测试.兼容性测试.安全性 ...

  3. 根据缺少的so,安装相关的软件

    http://blog.csdn.net/dianyueneo/article/details/8161350. ubuntu缺少libGL.so sudo apt-get install apt-f ...

  4. ERC20数字货币ProxyOverflow存在漏洞

    ERC20的ProxyOverflow漏洞造成影响广泛,本文将对其攻击方法进行分析,以便于智能合约发布者提高自身代码安全性以及其他研究人员进行测试.本文选择传播广泛.影响恶劣的SMT漏洞(CVE-20 ...

  5. Python——教你画朵太阳花

    用python中的turtle函数画个太阳花,有以下几个步骤 1.首先,我们在开始中找到Python语言的IDLE软件脚本     2.然后出现该软件界面,如图,点击上面的Eile     3.然后在 ...

  6. beego笔记

    beego学习笔记一:创建第一个beego Web项目 Go语言beego框架快速搭建体验五分钟讲解01 beego框架图文简介五分钟讲解02 beego框架图文简介五分钟讲解03-go语言简单方式操 ...

  7. oracle 索引移动到不同的分区

    最近系统空间不够,要进行数据库清理,truncate数据之后,发现数据不连续,导致这个表空间占用巨大,想过使用shrink.move.但是shrink得效率比较慢,选择了move.语句大概如此: SE ...

  8. OpenAL音频库例程

    Windows下C++可用的OpenAL demo. 基于alut工具库的OpenAL例程,涵盖了基本的OpenAL指令,对部分作出了注释,并且可以播放(当然得把对应的音频文件放到正确的路径下). # ...

  9. HTML5标签汇总及知识学习线路总结

    HTML5标签汇总,以及知识学习线路总结.

  10. [Solution] JZOJ-5818 做运动

    [Solution] JZOJ-5818 做运动 Time Limits:2000ms Memory Limits:524288KB Description 一天,Y 君在测量体重的时候惊讶的发现,由 ...