java spring 容器_Java Spring IOC 容器入门

本文章只是粗粗讲解了一下基本流程,并不涉及更深入的内容

ApplicationContext ac=new ClassPathXmlApplicationContext("Spring.xml");

获取Spring配置文件

接口可以实现多继承 ,但类不行

Public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory,MessageSource, ApplicationEventPublisher, ResourcePatternResolver

向下转型为ClassPathXmlApplicationContext 这么个类

那么这个类又是何方神圣?我画了个结构的粗体,但中间很多借口没有标明,(在回中会具体讲解几个借口)

5eff0be33d48

context.png

ResourceLoader:这个接口是定义了了两个方法:

Resource getResource(String location);(Resource 是一个接口,应该是对于inputstream resource 资源的一系列操作接口)

ClassLoader getClassLoader();

Bean定义资源文件定位由ResourceLoader通过统一的Resource接口来完成,Resource接口将各种形式的Bean定义资源文件封装成统一的、IoC容器可进行载入操作的对象。

ResourceUtils 这个类在图中并没有标明,它是Spring一系列资源的URL 的字符定义。(“file:”,zip等)。

DefaultResourceLoader 这个类其实是通过获取ClassLoader以及资源URL进行资源获取,在之前的代码中是用于Spring配置文件的加载。

这段代码初始化的时候,是调用ClassPathXmlApplicationContext 的构造函数,其构造函数跳转并将输入的字符串转化为数组对象,进入第二个构造函数。

第二个构造函数中,

5eff0be33d48

Paste_Image.png

Super(parent)的函数是调用其父类的方法,具体是 AbstractApplicationContext类的构造函数,

this()中获取了一个ResourcePatternResolver对象,应该是一个接口,它调用的get方法返回的是实现其接口的一个类:PathMatchingResourcePatternResolver

PathMatchingResourcePatternResolver:这个类实现的是一个资源location path匹配到一个或者多个匹配资源。

5eff0be33d48

Paste_Image.png

这个函数是正在调用的函数,setParent()

Parent 是ApplicationContext 类,这个类在Spring中还是比较重要的。这个类在这章Spring基础流程片就不深加了解。这个类我会放在另一章中详细讲解。

5eff0be33d48

Paste_Image.png

这个方法是等到配置文件的信息。

从Assert类中和其在这些代码中出现的频率来说,Spring在各种数据和方法的防范上可以说是非常明显的,逻辑十分清楚。(Assert类是对于各种情况的判断,包括object是否为空等)。

Refresh()方法是启动IOC容器的方法。

其实在IOC容器设计中,比较有名的是ApplicationContext 和BeanFactory这两类。

但预知后事如何,请听下回分解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值