一:IOC:依赖反转
1.0:问题1:定义;2:为什么,3:怎么实现的
1.1:依赖对象的获取被反转了
1.2:应用控制反转后,当对象被创建时,由一个调控系统(IOC容器)内的所有对象的外部实体将其所依赖的对象的引用传递给他,即依赖被注入到对象中。
1.3:因为很对对象依赖关系的建立我和维护并不需要和系统的运行状态有很强的关联性,所以,可以把再面向对象编程中比如新建对象,为对象的引用赋值等操作交给容器统一完成。
1.4:接口注入,setter注入,构造器注入。
IOC容器的初始化过程:
1:Resource定位(Bean的定义文件定位)
2:将Resource定位好的资源载入到BeanDefinition
3:将BeanDefiniton注册到容器中
1.1:过程一:Resource定位:
常用的resource资源类型如下:
FileSystemResource:以文件的绝对路径方式进行访问资源,效果类似于Java中的File;
ClassPathResourcee:以类路径的方式访问资源,效果类似于this.getClass().getResource("/").getPath();
ServletContextResource:web应用根目录的方式访问资源,效果类似于request.getServletContext().getRealPath("");
UrlResource:访问网络资源的实现类。例如file: http: ftp:等前缀的资源对象;
ByteArrayResource: 访问字节数组资源的实现类。
第二步 通过返回的resource对象,进行BeanDefinition的载入.
总之,BeanDefinition相当于一个数据结构,这个数据结构的生成过程是根据定位的resource资源对象中的bean而来的,这些bean在Spring IoC容器内部表示成了的BeanDefintion这样的数据结构,IoC容器对bean的管理和依赖注入的实现都是通过操作BeanDefinition来进行的。
网友评论