加载xml配置文件方式
1、 XmlBeanFactory 引用资源(spring 4已经废弃)
Resource resource = new ClassPathResource("spring.xml");
BeanFactory factory = new XmlBeanFactory(resource);
2、ApplicationContext引入资源
ApplicationContext factory=new ClassPathXmlApplicationContext("spring.xml");
3、用文件系统的路径
ApplicationContext factory=new FileSystemXmlApplicationContext("src/spring.xml");
4、web.xml加载pei'配置文件
在web.xml中加载spring.xml有两种方式:
①使用listener监听器加载全局上下文:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring.xml</param-value>
</context-param>
②使用servlet加载
<servlet>
<servlet-name>demo</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>resources/spring.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>demo</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
ContextLoaderListener与DispatcherServlet所创建的上下文ApplicationContext的区别:
a、ContextLoaderListener中创建ApplicationContext主要用于整个Web应用程序需要共享的一些组件,比如DAO,数据库的 ConnectionFactory等。而由DispatcherServlet创建的ApplicationContext主要用于和该Servlet相关的一些组件,比如Controller、ViewResovler等。
b、对于作用范围而言,在DispatcherServlet中可以引用由ContextLoaderListener所创建的ApplicationContext,而反过来不行
5、spring默认加载机制
如果在web.xml中指定spring.xml文件路径,spring会默认加载/WEB-INF/applicationContext.xml