重新认识 Spring IOC (4)

那么在这个创建容器的内部具体是如何构建加载容器的,我们可以进入看一下

//调用的构造函数 public ClassPathXmlApplicationContext(String configLocation) throws BeansException { this(new String[] {configLocation}, true, null); }

这里有调用的一个构造函数,这个才是真真执行的过程,我们发现内部执行力 refresh() 方法

public ClassPathXmlApplicationContext( String[] configLocations, boolean refresh, @Nullable ApplicationContext parent) throws BeansException { //调用父类的构造函数进行资源加载设置 super(parent); setConfigLocations(configLocations); if (refresh) { refresh(); } }

大家可以自己看一下,其实像 AnnotationConfigApplicationContext 、 FileSystemXmlApplicationContext 、 XmlWebApplicationContext 这些类都调用了 refresh() 方法,这个方法是他们父类 AbstractApplicationContext 实现的 ,这里应用的了装饰器模式策略模式

本文由AnonyStar 发布,可转载但需声明原文出处。
仰慕「优雅编码的艺术」 坚信熟能生巧,努力改变人生
欢迎关注微信公账号 :coder简码 获取更多优质文章
更多文章关注笔者博客 :IT简码

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wspjpz.html