Spring Ioc容器

最近再看Spring框架,觉得应该总结点什么吧,所以旧有了本文的诞生,博主菜鸟一枚,还请各位大神有的没的多多指教,在下不胜感激。

那么问题来了——什么是IoC呢?
IoC概念来说是控制反转或者叫做依赖注入。也就是说某一接口的具体实现类的选择控制权从调用类中移除,转交到第三方决定。
IoC的类型有:构造函数注入,属性注入,接口注入。

通过容器完成依赖关系的注入:Spring可以看成是是一个容器,它通过配置文件就可以知道类和类之间的关系。

IoC具体构成

1.资源访问利器
我们知道Spring是通过配置文件知道类与类之间的关系,那么它是通过什么方式读取到配置文件信息的呢?
答案是Resource接口
Resource接口在Spring框架有不可或缺的作用,Spring框架就是通过Resource接口进行装载各种资源,比如:配置文件,国际化属性文件等

Resource和其他实现类之间关系

《Spring Ioc容器》

ClassPathResource UrlResource FileSystemResource这两个方法可能会用的比较多

资源加载
资源地址表达式:
classpath:从类路径中加载资源
file:使用UrlResource从文件系统中加载资源
http:// ftp:// 是从web服务器或者从ftp文件服务器加载
没有前缀

Ant风格资源地址支持三种匹配符
?:匹配文件中的一个字符
*:匹配文件中任意个字符
**:匹配多层路径

资源加载器

《Spring Ioc容器》

上图是Spring资源加载器,ResourceLoader接口只有一个方法

    getResource(String location)

可以根据一个资源地址加载一个资源文件,但是资源地址仅支持带资源类型的前缀表达式
不支持Ant风格资源路径表达式
所以PathMatchingREsourcePatternResolver是Spring提供的标准实现类
可以通过面向接口编程使用

BeanFactory
Spring配置文件通过<Bean>以及之间的依赖关系,利用java的反射机制实例化Bean并建立关系。 BeanFactory就是对Bean一个管理的类工厂,最常用的就是XmlBeanFactory
是根据XML文件中的定义去转载Bean的。要创建XmlBeanFactory,需要传递一个
org.springframework.core.io.Resource实例给构造函数。此Resource对象提供XML文件给工厂。

ApplicationContext
ApplicationContext主要的实现类是
ClassPathXmlApplicationContext
默认从类路径加载配置文件
FileSystemXmlApplicationCOntext
后者默认从系统文件中加载配置文件
还提供以下服务
1、提供了文本信息解析工具,包括对国际化(I18N)的支持。
2、提供了载入文件资源的通用方法,如载入图片。
3、可以向注册为监听器的Bean发送事件。

以上就是一个对于IoC的一个小总结,当然如果想要知道更详细的话还是打开IDE去实现吧,
谢谢你能读到最后

    原文作者:JameHou
    原文地址: https://segmentfault.com/a/1190000004112296
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞