那么在这个创建容器的内部具体是如何构建加载容器的,我们可以进入看一下
//调用的构造函数 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简码