我觉得 IOC 主要分两块去理解, 第一块 IOC是干什么的, 为什么需要IOC ?; 第二块,IOC 这么好,该怎么用?
一: 为什么需要IOC?
回答这个问题就要从ioc的含义入手: IOC 控制反转 又叫 DI 依赖注入 ; 这些名词可能听起来不是很明白, 没关系 ,只要明白他是解决 对象生成 的就好办了 ;
在项目中,一些对象可能在很多地方都需要用到 ; 你可能创建一个 , 然后你同事可能也创建一个 . 这样就可能 一个对象 被 创建 了 多次 ; 如果 创建对象过程简单还好,要是复杂的话 会有很多冗余的代码 ; 也不方便维护 ;
这时 如果有人说 创建对象这事 不用你管了 , 你只负责用就可以了. 你会感叹真是及时雨呀.
spring 的ioc容器 就是这个及时雨 , 使用spring ioc 容器 就意味着 不用再去创建对象了, 想用就直接拿来用好了 .
这时 你可能会疑惑 这样不用自己创建对象 是很方便, 你可能会担心他能不能满足自己的需要 , 比如 这个对象 我需要他是单例的 , 另外一个对象 我需要他是 每一次都生成一个新对象 ; 或者说 我只想让这个对象在很短的时间内存在(比如一个请求范围内) , 而另外
一个对象则在很长的时间内存在(比如,从容器初始化一直持续到容器结束) 这些需要 spring的ioc都可以满足你, spring的 提供了五种作用域 : 单例 原型 request session globalsession ;
通过上面 你基本上 了解IOC是干什么的, 而且还可以放心地把bean 交给 spring ioc 容器来管理 ;.总之他不仅能满足你的各种需求 而且还可以 帮你省去很多麻烦 . 苦活 脏活 累活 都交给他 你只需要准备好原料 和 菜单 ; 然后就可以坐等 肉到碗里来了 . 接下来就该
第二个问题了, IOC 这么好,该怎么用呢?
二: IOC 的使用 ,
由于此部分很多大牛已经讲的很好了,请自行百度: (如果需要我转述,请在评论区留言)