Spring IoC图解

Java最基本的程序单元边界是类,一个应用项目就是由多个不同的类以及类方法调用组成。调用在类中完成,被调用的方法在类内定义。从最基本的开始,如果在ClassA中调用ClassB的实例方法(为简化,先不涉及静态类),首先就要在ClassA中定义ClassB类型的变量 ClassB 变量名=new ClassB() , 那么通过new关键字,ClassA和ClassB之间就建立起了一种依赖/从属关系(Dependency)。

ClassA的实现依赖于ClassB的实现,ClassA实际上被ClassB控制。当这种依赖关系在你的应用程序系统中蔓延开来的话,就会形成一张巨大的,而且是错综复杂、紧密耦合的依赖关系网。只要其中一个实现对象发生问题,系统(整体或部分)就会失效罢工。



当应用程序没有提供一种机制,可以让我们站在更高层面管理并理清这种关系的话,那么我们一定会迷失在这张网里,换句话说我们就会愣头愣脑的闯进依赖关系所构成的迷宫里。


好了,走出迷宫的一个好办法就是获得一张迷宫地图。Spring Framework就为我们提供了一种获得地图的机制IoC。先来看看制作地图的一个基本元素Java Bean。

我猜大部分的程序员是有coffee依赖症的,自然会对coffee bean情有独钟,起这么个名实在很恰当。bean就是构建对象依赖关系地图的基本单元,一颗咖啡豆对应一个实例对象。我们制作对象地图的过程,可以分为以下几个步骤:


1、先从一大堆的豆子类里挑出我们要用的。豆子类分布在web的各个地方,包括自己的硬盘里。怎么获得呢?好在有个Maven工具,我们把它想象成为豆子类的仓库。随用随取。这时候就需要向仓库提交需求清单,也就是pom.xml。

2、原料来了,自然要把它们放在容器里。容器对应spring framework就是IoC container。这是个比较抽象的概念,简单的可以理解为我们绘制地图的空白画板,spring会在内存中开辟出这个容器区域来,供我们画图使用。这时的豆子都是类,要使用的话必须实例化。

3、开始画图,也就是定义对象节点以及节点间的依赖关系,形成清晰的地图。你所用到的豆子在地图上应该有唯一的ID号,都会自动被spring实例化。关键的是,在这张图里(具体对应的就是配置文件)的豆子会根据你的要求进出容器,并与容器里的其他豆子发生关系(也就是依赖注入),进行协作。


有了张图,我们基本上就可以站在更高的层面看待组成系统的对象依赖关系,一切尽在你的掌控。


可以喝杯咖啡了。


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值