1.前面讲解的都是通过直接读取配置文件,进行的实例化ApplicationContext
AbstractApplicationContext app = new ClassPathXmlApplicationContext("beans.xml");
下面讲解直接通过配置文件进行初始化。
2.web.xml
1 2 3 4 5 6 7 8 | < context-param > < param-name >contextConfigLocation</ param-name > < param-value >classpath:beans.xml</ param-value > </ context-param > < listener > < listener-class >org.springframework.web.context.ContextLoaderListener</ listener-class > </ listener > |
这样,ApplicationContext便已经实例化了,默认就直接加载了beans.xml里面的内容。
来看看底层的代码,类ContextLoaderListener中有个初始化方法
1 2 3 4 5 6 7 | public void contextInitialized(ServletContextEvent event) { this .contextLoader = createContextLoader(); if ( this .contextLoader == null ) { this .contextLoader = this ; } this .contextLoader.initWebApplicationContext(event.getServletContext()); } |
进入initWebApplicationContext方法 :
1 2 3 4 | ApplicationContext parent = loadParentContext(servletContext); // Store context in local instance variable, to guarantee that // it is available on ServletContext shutdown . this.context = createWebApplicationContext(servletContext, parent); |
这句也就是容器加载的结果。
1和2一个是java代码一个是xml代码,不过实现的效果都是一样的。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自学编程网。
- 本文固定链接: https://zxbcw.cn/post/201327/
- 转载请注明:必须在正文中标注并保留原文链接
- QQ群: PHP高手阵营官方总群(344148542)
- QQ群: Yii2.0开发(304864863)