`
- 浏览:
287369 次
- 性别:
- 来自:
上海
-
ClassPathXmlApplicationContext,FileSystemXmlApplicationContext和 XmlWebApplicatio
ApplicationContext应用
- spring为ApplicationContext提供的3种实现分别为:ClassPathXmlApplicationContext,FileSystemXmlApplicationContext和 XmlWebApplicationContext,其中XmlWebApplicationContext是专为Web工程定制的。使用举例如下:
- 1. FileSystemXmlApplicationContext
- eg1. ApplicationContext ctx = new FileSystemXmlApplicationContext("bean.xml");
- eg2.
- String[] locations = {"bean1.xml", "bean2.xml", "bean3.xml"};
- ApplicationContext ctx = new FileSystemXmlApplicationContext(locations );
- eg3.
- ApplicationContext ctx =new FileSystemXmlApplicationContext("D:/project/bean.xml");
- 2. ClassPathXmlApplicationContext
- eg1. ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");
- eg2.
- String[] locations = {"bean1.xml", "bean2.xml", "bean3.xml"};
- ApplicationContext ctx = new ClassPathXmlApplication(locations);
- 注:其中FileSystemXmlApplicationContext和ClassPathXmlApplicationContext与 BeanFactory的xml文件定位方式一样是基于路径的。
- 3. XmlWebApplicationContext
- eg1. ServletContext servletContext = request.getSession().getServletContext();
- ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);
-
-
-
- 注 : 一般是 ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());
-
-
- 加载器目前有两种选择:ContextLoaderListener和ContextLoaderServlet。
- 这两者在功能上完全等同,只是一个是基于Servlet2.3版本中新引入的Listener接口实现,而另一个基于Servlet接口实现。开发中可根据目标Web容器的实际情况进行选择。
-
- 配置非常简单,在web.xml中增加:
- <listener>
- <listener-class>
- org.springframework.web.context.ContextLoaderListener
- </listener-class>
- </listener>
- 或:
- <servlet>
- <servlet-name>context</servlet-name>
- <servlet-class>
- org.springframework.web.context.ContextLoaderServlet
- </servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
-
-
- 通过以上配置,Web容器会自动加载/WEB-INF/applicationContext.xml初始化
- ApplicationContext 实例,如果需要指定配置文件位置,可通过context-param加以指定:
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>/WEB-INF/myApplicationContext.xml</param-value>
- </context-param>
-
- 配置完成之后,即可通过
- WebApplicationContextUtils.getWebApplicationContext 方法在Web应用中获取ApplicationContext引用。
-
- 如:ApplicationContext ctx=WebApplicationContextUtils.getWebApplicationContext();
- LoginAction action=(LoginAction)ctx.getBean("action");
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
spring读取配置不同目录下的配置文件,使用ClassPathXmlApplicationContext与FileSystemXmlApplicationContext
spring容器的触发事件 ClassPathXmlApplicationContext的start()方法的用法
NULL 博文链接:https://gaojiewyh.iteye.com/blog/409606
NULL 博文链接:https://cuiran.iteye.com/blog/487385
二、ClassPathXmlApplicationContext[只能读放在web-info/classes目录下的配置文件]和FileSystemXmlApplicationContext的区别 classpath:前缀是不需要的,默认就是指项目的classpath路径下面; 如果要使用绝对路径,...
NULL 博文链接:https://canfly2010.iteye.com/blog/443063
加载xml文件使用ClassPathXmlApplicationContext("applicationContext.xml") (3)BeanFactory(bean工厂)与ApplicationContext(容器)对比: 所有在xml里配置的Bean标签最后都会转换为BeanDefinition对象存放在...
* ClassPathXmlApplicationContext:它可以加载类路径下的配置文件,要求配置文件必须在类路径下。不在的话,加载不了。(更常用) * FileSystemXmlApplicationContext:它可以加载磁盘任意路径下的配置文件(必须有...
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); (2)ApplicationContext context = new FileSystemXmlApplicationContext ("applicationContext.xml"); 一般用第...
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@c1f10e: display name [org.springframework.context.support.ClassPathXmlApplicationContext@c1f10e]; startup date [Wed ...
手写SpringIoc的XML实现方式,仿照Spring底层Bean工厂类实现ClassPathXmlApplicationContext
ClassPathXmlApplicationContext:使用这个工厂创建对象,他会根据scope智能判断是否懒加载,如果是单例则创建容器时就会创建里面bean的实例,如果是多例在获取使用时才会创建bean实例 ...
ApplicationContext ac = new ClassPathXmlApplicationContext("spring/applicationContext-jms-producer.xml"); //获取生产者发送消息服务接口 MessageSender messageSender = (MessageSender)ac.getBean...
Jan 17, 2015 1:36:28 AM org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@41906a77:...
{ ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); JdbcTemplate jdTemplate =(JdbcTemplate) applicationContext.getBean("jdbcTemplate"); jdTemplate....
在Java项目中,会通过ClassPathXmlApplicationContext类来实例化ApplicationContext容器。而在Web项目中,ApplicationContext容器的实例化工作会交由Web服务器来完成。 Web服务器实例化ApplicationContext容器时,...
public class ClassPathXmlApplicationContext implements BeanFactory { private Map, Object> beans = new HashMap, Object>(); @SuppressWarnings("unchecked") public ClassPathXmlApplicationContext() ...
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); //输出spring容器 System.out.println(ctx); //打印加载的bean名称 System.out.println(java.util.Arrays....
package demo; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;