人生必须的知识就是引人向光明方面的明灯。这篇文章主要讲述Spring加载xml配置文件的方式 ApplicationContext相关的知识,希望能为你提供帮助。
大家都知道java读普通文件是通过Basic I/O 中的InputStream、OutStream、Reader、Writer 等实现的。在spring 框架中,它是怎样识别xml这个配置文件的呢?
这就要靠IoC容器的两个接口BeanFactory
和ApplicationContext:
BeanFactory (接口)BeanFactory是一个接口,Spring使用它来实例化、配置和管理对象,它里面有一个getBean()方法,只提供了spring最基础的特征,一般使用在低内存的情况下,如Applet。一般的spring项目用它的派生类ApplicationContext,这个类会自动解析我们配置的xml文件,然后根据配置的bean来new对象,将new好的对象放进一个Map中,键是bean的id,值就是new的对象。
|--------XmlBeanFactory(实现类)
ApplicationContext (接口)
|-------- ClassPathXmlApplicationContext(实现类)
|---------FileSystemXmlApplicationContext(实现类)
|---------XmlWebApplicationContext(实现类)
1. 编译路径ClassPathXmlApplicationContext来加载xml文件(我们入门篇中的例子http://blog.csdn.net/shymi1991/article/details/48085955 )
这种方式xml文件必须在项目的build path里面,一般用classpath:作为前缀,也可以省略
1)/src目录下
ApplicationContext factory=new ClassPathXmlApplicationContext("classpath:appcontext.xml");
ApplicationContext factory=new ClassPathXmlApplicationContext("appcontext.xml");
2)/ src/conf 目录下的
ApplicationContext factory=new ClassPathXmlApplicationContext("conf/appcontext.xml");
2.文件系统的路径
3)同时加载多个xml文件
ApplicationContext factory=new ClassPathXmlApplicationContext(new String[] {"bean1.xml","bean2.xml"});
xml文件的绝对路径,一般用file:作为前缀,也可以省略
ApplicationContext factory=new FileSystemXmlApplicationContext("file:G:/Test/src/appcontext.xml");
ApplicationContext factory=new FileSystemXmlApplicationContext("G:/Test/src/appcontext.xml");
3. XmlWebApplicationContext是专为Web工程定制的
ServletContext servletContext = request.getSession().getServletContext();
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext );
【Spring加载xml配置文件的方式 ApplicationContext】
推荐阅读
- win10 UWP app 开发笔记 - 01
- 使用HttpServletRequestWrapper重写Request请求参数
- Android BLE设备蓝牙通信框架BluetoothKit
- 密钥对验证及TCP Wrappers访问控制
- weexapp 开发流程其他页面创建
- 第七章 : Git 介绍 (下)[Learn Android Studio 汉化教程]
- 第六章(Reminders实验:第二部分[Learn Android Studio 汉化教程])
- 第四章(重构代码[学习Android Studio汉化教程])
- 第三章(使用 Android Studio 编程[Learn Android Studio 汉化教程])