- 从大小与开销两方面而言Spring都是轻量的。html
- 经过控制反转(IoC)的技术达到松耦合的目的。web
- 提供了面向切面编程的丰富支持,容许经过容许经过分离应用的业务逻辑与系统级服务进行内聚性的开发。应用只实现业务逻辑便可,并不负责其它的系统级关注点。spring
解释:好比说,作一个商品的管理,商品的入库、出库就是业务逻辑,系统服务是,好比说入库、出库都要统一的日志的记录,和事物的管理那么这种就属于系统服务,它是和具体的业务逻辑是无关的,不管什么样的业务都会使用到的服务都把它称为系统服务。express
- 包含并管理应用对象的配置和生命周期,这个意义上是一种容器。编程
- 将简单的组件配置、组合成为复杂的应用,这个意义上是框架。架构
因此Spring带来了复杂JavaEE开发的春天!mvc
从这幅图中咱们能够看出来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的各个模块作各类各样的测试,包括单元测试、集成测试等等。
文章出自:艺意