Spring致力于J2EE应用的各类解决方案,而不单单专一于某一层的方案。数据库
能够说,Spring是企业应用开发的一站式选择,他贯穿于表现层、业务层、持久层。编程
Spring并不想取代那些已有的框架,而是以高度的开放性与这些框架无缝整合。架构
Spring的两个目标:框架
一、让现有技术更易于使用工具
二、促进良好的编程习惯编码
体系结构分为7个部分spa
Spring Core 是Spring的核心,提供IOC和依赖注入特性设计
提供一种框架风格的方式来访问对象,有些像JNDI注册表。3d
他继承了Beans包的功能,同时增长了国际化、事件传播、资源装载,以及透明建立上下文对象
经过配置管理,Spring AOP直接将面向方面编程功能集成到了Spring框架中
提供JDBC的抽象层,能够消除冗长的JDBC编码和解析数据库厂商特有的错误代码
Spring框架插入了若干个ORM框架,从而提供了ORM对象关系工具,其中包括JDO、Hibernate和iBatis等,全部这些都听从Spring的通用事务和DAO异常层次结构
创建在应用程序上下文模块之上,为基于Web的应用程序提供了上下文。因此,他支持与Jakaarta Struts的集成
这三个核心组件构建起了整个Spring的骨骼架构。
若是没有这几个核心组件,就不可能有AOP、Web等上层的特性功能。
Bean组件是这三个核心组件的核心,他是Spring核心的主角。
Bean组件是Spring容器使用DI(依赖注入)管理全部组成应用系统的组件。
那为何Bean组件在Spring中如此重要呢?
这是Spring框架的设计目标决定的,Spring为何这么流行,咱们使用Spring的缘由是什么?
咱们仔细想一想就会发现,原来Spring解决了一个很是很是关键的问题,那就是让咱们把对象之间的依赖关系用配置文件来管理,也就是咱们在对象之间的依赖的时候咱们不经过对象去建立对象了,他们之间的依赖关系改成用配置文件来管理了,这也就是他的依赖注入机制,而这个注入关系在一个叫IOC容器中管理。
在这个容器中,Spring经过将对象包装在Bean中而达到对这些对象的管理
Context组件的做用是 发现每一个Bean之间的关系,为他们之间建好这种关系并进行维护。因此能够把Context看作是一个Bean的关系集合。这个关系集合咱们称之为IOC容器。
Core组件是发现、创建和维护每一个Bean之间关系须要的一系列工具,所以咱们能够把Core组件想像成咱们的until工具包。
Bean组件比做是一场演出的演员、
Context就是这场演出的舞台背景、
Core是演出的道具。