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

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

ID:18957673

大小:142.50 KB

页数:13页

时间:2018-09-27

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

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

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

2、结构。在web容器中启动Spring应用程序就是一个建立这个上下文体系的过程。Spring为web应用提供了上下文的扩展接口WebApplicationContext:Java代码1.public interface WebApplicationContext extends ApplicationContext {  2.    //这里定义的常量用于在ServletContext中存取根上下文  3.    String ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE = WebApplication

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

4、LICATION_CONTEXT_ATTRIBUTE=WebApplicationContext.class.getName()+".ROOT";......//对WebApplicationContext来说,需要得到Web容器的ServletContextServletContextgetServletContext();}而一般的启动过程,Spring会使用一个默认的实现,XmlWebApplicationContext-这个上下文实现作为在web容器中的根上下文容器被建立起来,具体的建立过程在下面我们会详细分析。Java代码1

5、.public class XmlWebApplicationContext extends AbstractRefreshableWebApplicationContext {  2.  1.    /** 这是和web部署相关的位置信息,用来作为默认的根上下文bean定义信息的存放位置*/  2.    public static final String DEFAULT_CONFIG_LOCATION = "/WEB-INF/applicationContext.xml";  3.    public static final 

6、String DEFAULT_CONFIG_LOCATION_PREFIX = "/WEB-INF/";  4.    public static final String DEFAULT_CONFIG_LOCATION_SUFFIX = ".xml";  5.     6.    //我们又看到了熟悉的loadBeanDefinition,就像我们前面对IOC容器的分析中一样,这个加载工程在容器的refresh()的时候启动。  7.    protected void loadBeanDefinitions(DefaultList

7、ableBeanFactory beanFactory) throws IOException {  8.        //对于XmlWebApplicationContext,当然使用的是XmlBeanDefinitionReader来对bean定义信息来进行解析  9.        XmlBeanDefinitionReader beanDefinitionReader = new XmlBeanDefinitionReader(beanFactory);  10.  11.        beanDefinitionRead

8、er.setResourceLoader(this);  12.        beanDefinitionReader.setEntityResolver(new ResourceEntityResolver(this

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

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

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