Spring核心组件bean、context、core
2016-02-19 23:07
211 查看
spring是目前最流行的框架之一,今天主要和大家共同研究一下spring的核心组件。spring总共有十几个组件,其真正核心组件为:core、context和bean。
这三个组件中bean尤为重要,因为spring是面向bean的编程。就像Java是面向对象的编程一样,bean对于spring来说就好比Java中的对象一样重要。在spring中如果没有bean也就没有spring存在的意义了。这就好比一次演出没有了演员,没有演员的演出还算什么演出。
spring解决了一个非常重要的问题,他可以把对象之间的依赖关系转移到配置文件中来管理,也就是我们常说的依赖注入。依赖注入需要在IOC容器中管理,这样做具体有什么好处呢?简单的举个例子:现在有两个对象A、B,如果A需要调用B中的方法,最常见的做法就是添加对B的引用,然后实例化出一个B对象(B b=new B)。显然这样做没有错,但是对于我们做软件高内聚低耦合来说,就不那么和谐了。这时候IOC就出现了,同样的前提下,A不在需要添加对B的引用了,而是由IOC容器在A需要的时候给A注入一个B对象,这样就大大减少了A的职责,同时也降低了系统耦合。spring正是通过把对象包装在Bean中从而达到管理这些对象以及做一系列额外操作的目的。
上面我们说到bean是spring的关键,那么context和core分别有什么作用呢?
我们知道bean包装的是object,而object中肯定要有数据,如何给这些数据提供生存环境就是context要解决的问题,对于context来说他就是要发现每个bean之间的关系,为他们建立起来并维护好这些关系。所以context就是一个bean关系的集合,这个关系集合就是我们常说的IOC容器。core组件就是发现、建立和维护每个bean之间的关系所需要的一些工具,把core叫做util更为贴切。
如果bean作为一场演出的演员,那么context就是这场演出的舞台背景,而core就是演出道具了。只有他们在一起共同合作才能具备演一场好戏的最基本条件。当然有最基本的条件并不能使这场戏脱颖而出,还需要它表演的节目足够精彩,这些节目就是spring能提供的特色功能了。
这三个组件中bean尤为重要,因为spring是面向bean的编程。就像Java是面向对象的编程一样,bean对于spring来说就好比Java中的对象一样重要。在spring中如果没有bean也就没有spring存在的意义了。这就好比一次演出没有了演员,没有演员的演出还算什么演出。
spring解决了一个非常重要的问题,他可以把对象之间的依赖关系转移到配置文件中来管理,也就是我们常说的依赖注入。依赖注入需要在IOC容器中管理,这样做具体有什么好处呢?简单的举个例子:现在有两个对象A、B,如果A需要调用B中的方法,最常见的做法就是添加对B的引用,然后实例化出一个B对象(B b=new B)。显然这样做没有错,但是对于我们做软件高内聚低耦合来说,就不那么和谐了。这时候IOC就出现了,同样的前提下,A不在需要添加对B的引用了,而是由IOC容器在A需要的时候给A注入一个B对象,这样就大大减少了A的职责,同时也降低了系统耦合。spring正是通过把对象包装在Bean中从而达到管理这些对象以及做一系列额外操作的目的。
上面我们说到bean是spring的关键,那么context和core分别有什么作用呢?
我们知道bean包装的是object,而object中肯定要有数据,如何给这些数据提供生存环境就是context要解决的问题,对于context来说他就是要发现每个bean之间的关系,为他们建立起来并维护好这些关系。所以context就是一个bean关系的集合,这个关系集合就是我们常说的IOC容器。core组件就是发现、建立和维护每个bean之间的关系所需要的一些工具,把core叫做util更为贴切。
如果bean作为一场演出的演员,那么context就是这场演出的舞台背景,而core就是演出道具了。只有他们在一起共同合作才能具备演一场好戏的最基本条件。当然有最基本的条件并不能使这场戏脱颖而出,还需要它表演的节目足够精彩,这些节目就是spring能提供的特色功能了。
相关文章推荐
- Java算法编程题系列之 3、猜算式
- 关于Java小项目——图书管理系统的总结
- 关于研究Java中GlassPane的心得
- 定制化Azure站点Java运行环境(4)
- [Introduction to programming in Java 笔记] 1.3.9 Factoring integers 素因子分解
- 从头认识Spring-2.8 基于java注解的配置(基本没有xml)
- Java [Leetcode 228]Summary Ranges
- 关于 Eclipse
- 深入理解Spring IOC
- 定制化Azure站点Java运行环境(3)
- 定制化Azure站点Java运行环境(2)
- SQL Developer报错:Unable to find a Java Virtual Machine解决办法
- LEEDCODE 12 Integer to Roman (JAVA题解)
- Java反射机制
- spring mvc中的@PathVariable[动态参数类似于spring中的通配符功能]
- Java [Leetcode 204]Count Primes
- java基础—java的Io操作学习(3)
- java多线程设计模
- andriod Java中度转度分秒
- CS 106A JAVA学习