spring源代码解析(二):ioc容器在web中启动

spring源代码解析(二):ioc容器在web中启动

ID:34251533

大小:139.50 KB

页数:11页

时间:2019-03-04

spring源代码解析(二):ioc容器在web中启动_第1页
spring源代码解析(二):ioc容器在web中启动_第2页
spring源代码解析(二):ioc容器在web中启动_第3页
spring源代码解析(二):ioc容器在web中启动_第4页
spring源代码解析(二):ioc容器在web中启动_第5页
资源描述:

《spring源代码解析(二):ioc容器在web中启动》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、上面我们分析了IOC容器本身的实现,下面我们看看在典型的web环境中,SpringIOC容器是怎样被载入和起作用的。简单的说,在web容器中,通过ServletContext为Spring的IOC容器提供宿主环境,对应的建立起一个IOC容器的体系。其中,首先需要建立的是根上下文,这个上下文持有的对象可以有业务对象,数据存取对象,资源,事物管理器等各种中间层对象。在这个上下文的基础上,和webMVC相关还会有一个上下文来保存控制器之类的MVC对象,这样就构成了一个层次化的上下文结构。在web容器中启动Spring应用程序就是一个建立这个上下文体系的过程。Spring为web应用提供了上下文的扩

2、展接口WebApplicationContext:Java代码1.public interface WebApplicationContext extends ApplicationContext {  2.    //这里定义的常量用于在ServletContext中存取根上下文  3.    String ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE = WebApplicationContext.class.getName() + ".ROOT";  4.    ......  5.    //对WebApplicationContext来说,需要得到W

3、eb容器的ServletContext  6.    ServletContext getServletContext();  7.}  publicinterfaceWebApplicationContextextendsApplicationContext{//这里定义的常量用于在ServletContext中存取根上下文StringROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE=WebApplicationContext.class.getName()+".ROOT";......//对WebApplicationContext来说,需要得到Web容器的S

4、ervletContextServletContextgetServletContext();}而一般的启动过程,Spring会使用一个默认的实现,XmlWebApplicationContext-这个上下文实现作为在web容器中的根上下文容器被建立起来,具体的建立过程在下面我们会详细分析。Java代码1.public class XmlWebApplicationContext extends AbstractRefreshableWebApplicationContext {  2.  3.    /** 这是和web部署相关的位置信息,用来作为默认的根上下文bean定义信息的存放位置*

5、/  4.    public static final String DEFAULT_CONFIG_LOCATION = "/WEB-INF/applicationContext.xml";  5.    public static final String DEFAULT_CONFIG_LOCATION_PREFIX = "/WEB-INF/";  6.    public static final String DEFAULT_CONFIG_LOCATION_SUFFIX = ".xml";  7.     8.    //我们又看到了熟悉的loadBeanDefinition,就像我

6、们前面对IOC容器的分析中一样,这个加载工程在容器的refresh()的时候启动。  1.    protected void loadBeanDefinitions(DefaultListableBeanFactory beanFactory) throws IOException {  2.        //对于XmlWebApplicationContext,当然使用的是XmlBeanDefinitionReader来对bean定义信息来进行解析  3.        XmlBeanDefinitionReader beanDefinitionReader = new XmlBean

7、DefinitionReader(beanFactory);  4.  5.        beanDefinitionReader.setResourceLoader(this);  6.        beanDefinitionReader.setEntityResolver(new ResourceEntityResolver(this));  7.  8.        initBeanDefini

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。