Spring中的ClassPathXmlApplicationContext源码详解
更新时间:2023年12月01日 10:01:38 作者:军伟@
这篇文章主要介绍了Spring中的ClassPathXmlApplicationContext源码详解,ApplicationContext的主要实现类是ClassPathXmlApplicationContext和FileSystemXmlApplicationContext,前者默认从类路径加载配置文件,后者默认从文件系统中装载配置文件,需要的朋友可以参考下
ClassPathXmlApplicationContext源码
ApplicationContext应用上下文体系如下:
在实现类ClassPathXmlApplicationContext中其实并没有多少重要的操作,主要是在构造函数中配置Spring配置文件的路径:
public class DaoOperationMain { public static void main(String[] args) { ApplicationContext appCtx = new ClassPathXmlApplicationContext("applicationContext.xml"); } }
具体的applicationContext.xml解析相关的操作都在父类refresh中进行操作。
ClassPathXmlApplicationContext的源码如下:
/** * 并没有太多具体的操作,主要是初始化构造函数,主要的操作都在父类中 */ public class ClassPathXmlApplicationContext extends AbstractXmlApplicationContext { private Resource[] configResources; public ClassPathXmlApplicationContext() { } public ClassPathXmlApplicationContext(ApplicationContext parent) { super(parent); } public ClassPathXmlApplicationContext(String configLocation) throws BeansException { this(new String[] {configLocation}, true, null); } public ClassPathXmlApplicationContext(String... configLocations) throws BeansException { this(configLocations, true, null); } public ClassPathXmlApplicationContext(String[] configLocations, ApplicationContext parent) throws BeansException { this(configLocations, true, parent); } public ClassPathXmlApplicationContext(String[] configLocations, boolean refresh) throws BeansException { this(configLocations, refresh, null); } public ClassPathXmlApplicationContext(String[] configLocations, boolean refresh, ApplicationContext parent) throws BeansException { super(parent); //设置spring的配置文件 setConfigLocations(configLocations); if (refresh) { //调用父类的refresh函数,进行一系列初始化 refresh(); } } public ClassPathXmlApplicationContext(String path, Class<?> clazz) throws BeansException { this(new String[] {path}, clazz); } public ClassPathXmlApplicationContext(String[] paths, Class<?> clazz) throws BeansException { this(paths, clazz, null); } public ClassPathXmlApplicationContext(String[] paths, Class<?> clazz, ApplicationContext parent) throws BeansException { super(parent); Assert.notNull(paths, "Path array must not be null"); Assert.notNull(clazz, "Class argument must not be null"); this.configResources = new Resource[paths.length]; for (int i = 0; i < paths.length; i++) { this.configResources[i] = new ClassPathResource(paths[i], clazz); } //调用父类的refresh函数,进行一系列初始化 refresh(); } @Override protected Resource[] getConfigResources() { return this.configResources; } }
到此这篇关于Spring中的ClassPathXmlApplicationContext源码详解的文章就介绍到这了,更多相关ClassPathXmlApplicationContext源码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java 在Word中创建邮件合并模板并合并文本和图片的操作方法
通过Java程序展示如何来实现创建模板,并通过邮件合并功能来合并文本数据和图片数据的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧2021-07-07Spring ApplicationListener的使用详解
这篇文章主要介绍了Spring ApplicationListener的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-06-06
最新评论