您的位置:首页 > 编程语言 > Java开发

spring IOC容器

2016-01-21 22:54 513 查看
1为什么使用spring

我们知道任何一个应用都需要用到多个类(并不是所有的应用都像Hello the world ),既然有多个类,那么久涉及到了多个之间的协作,多个类之间如何协作呢,当然是靠通信了(就像我们人与人之间)。比如我们开发了一款软件,比如eclipse。我们知道eclipse有若干个组成部分(面板1,面板2,面板3,按钮1,按钮2,按钮3,下拉菜单1,下拉菜单2,下拉菜单3,啊好痛苦写不下去了),我们将每一个组成部分对应一个类。好了eclipse应该是这样的。

public class Eclipse{
Panel1 panel1;
Panel2 panel2;
Panel3 panel3;
....
...
..
.

}


好了,我们该启动一下这个Eclipse了。

public class Boot{
public static void main(String[] argv){
Panel1 p1=new Panel1(......);
Panel2 p2=new Panel2(.....);
Panel3 p3=new Panel3(.....);
.....
Eclipse eclipse=new Eclipse();
eclipse.panel1=p1;
eclipse.panel2=p2;
eclipse.panel3=p3;
.....
..
.
}
}


如果你是写Boot那个类的程序员,我不知道你会有什么想法,我只会骂娘,靠这段代码如此简单, 只是把eclipse的各个面板,按钮等等实例化了,然后传递给Eclipse实例,然后自己写代码写到手抽筋。好了,为了不让你写到手抽筋,你可以使用spring了, 在大家开发的时候你可以告诉他们,让他们每写好一个类,就到配置文件中配置一下。然后:

public class Boot{
public static void main(String[] argv){
ApplicationContext context=new ApplicationContext(....);
Eclipse eclipse=(Eclipse)context.getBean("Eclipse");
}
}


高兴了吧,虽然做的事情依旧没有技术含量,但是至少不用写代码,写到手抽筋了。

好了前面的例子在扯淡,Eclipse根本不会设计成这个烂德行,spring的精髓也并不是让你把工作量分担给同事。

spring的精髓是IOC容器。生么是IOC容器呢?就是对IOC规范的实现

就是依赖注入这种规范的实现。这就好比我们运行java代码都需要jvm,但我们都知道jvm只是一个规范,而我们用到hotspot,jrocket等等才是jvm的具体实现。

好了生么是IOC:Inversion of Control,控制反转,有时候也叫DI,dependence injection,依赖注入。

好了,你只需要记住ioc,di只是个名字而已,就和某人叫xxx一样。好了,现在讲一下ioc,和di的精髓,就是我们将一个类写好了之后,然后在spring的配置文件中进行配置。当我们在某个程序段中需要用到某个类的一个实例(并不是所有的类都是无参的,并不是所有的类的实例你都会初始化),你直接通过这个实例对应的名称就可以了。比如就像我上面的那个Eclipse的例子。spring IOC容器,就相当于一个巨大的Map
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring ioc