发表于: 2018-04-20 23:52:22
1 634
一、今天完成的事情
Spring中的IOC是什么意思,为什么要用IOC而不是New来创建实例?
1.背景介绍
Spring Framework是一个开源的Java/Java EE全功能栈(full-stack)的应用程序框架,以Apache License 2.0开源许可协议的形式发布,也有.NET平台上的移植版本。最初由Rod Johnson和Juergen Hoeller等开发。Spring Framework提供了一个简易的开发方式,这种开发方式,将避免那些可能致使底层代码变得繁杂混乱的大量的属性文件和帮助类。
spring最核心的概念就是IOC和AOP
2.知识剖析
IoC是什么
Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。
通过控制反转客户端不需要再主动创建对象,只需要通过IOC,由IOC去创建就可以了
由应用程序创建对象转变为由IOC容器来创建,用于控制创建对象的主体发生了改变,这是控制反转
应用程序需要的对象信息由IOC容器创建后注入,也就是说依赖于容器来注入,这是依赖注入
表达的是一个东西,只是描述的角度不同。
IOC,从容器的角度出发,容器反向控制应用程序对象的创建。
DI,从应用程序的角度出发,应用程序需要依赖容器注入对象。
3.常见问题
1)IOC和DI的区别
2) xml配置注入方式
4.解决方案
写清楚常见问题的解决方案
1)IOC和DI的区别
理解好IoC的关键是:谁控制谁,控制什么了,为何是反转,在哪些方面反转了。
谁控制谁,控制什么了
传统JavaSE程序设计,我们在对象内部直接通过new进行创建对象,是程序主动去创建依赖对象,而IoC有一个专门的容器来创建这些对象,即由IoC容器来创建这些对象的创建。谁控制谁?当然是由IoC容器控制了对象;控制了什么?那就主要是控制了外部资源获取(包括对象、文件等)。
为何是反转,在哪些方面反转了
有反转就有正转。传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,也就是正转。而反转则是由容器来帮忙创建及注入依赖对象。为何是反转?因为容器帮我们查找和注入依赖对象,对象只是被动的接受依赖对象,所以是反转。哪些方面反转了?依赖对象的获取反转了。
理解DI的关键:谁依赖谁,为什么需要依赖,谁注入谁,注入了什么
1.谁依赖谁?当然是应用程序依赖于IoC容器。
2.为什么需要依赖?应用程序需要IoC容器来提供对象需要的外部资源(包括对象,文件等)。
3.谁注入谁?很明显是IoC容器注入应用程序某个对象,应用程序依赖的对象。
4.注入了什么?就是注入某个对象所需要的外部资源(包括对象、资源、变量数据)
2) xml配置注入方式
· 1.Set注入
· 2.构造器注入
5.编码实战
6.扩展思考
7.参考文献
https://www.cnblogs.com/xdp-gacl/p/4249939.html
https://blog.csdn.net/c513063286/article/details/71516886
https://blog.csdn.net/suzunshou/article/details/47149895
8.更多讨论
二、明天计划的事情
把几种依赖注入的方式搞明白,然后继续做任务
三、遇到的问题
对这几种注入方式很蒙圈啊啊,一找资料全是术语,欺负我底子薄....
四、收获
之前不很明白的地方接着这次机会算是好好回顾了一下
评论