Spring中ApplicationContext加載機制
Posted on 2008-11-26 08:18 J2EE Home工作室 閱讀(348) 評論(0) 編輯 收藏 所屬分類: Spring
加載器目前有兩種選擇:ContextLoaderListener和ContextLoaderServlet。 這兩者在功能上完全等同,只是一個是基于Servlet2.3版本中新引入的Listener接口實現,而另一個基于Servlet接口實現。開發中可根據目標Web容器的實際情況進行選擇。
------------------------------------------------------------------------------------------- spring為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());
|