Spring中ApplicationContext加載機(jī)制
Posted on 2008-11-26 08:18 J2EE Home工作室 閱讀(343) 評論(0) 編輯 收藏 所屬分類: Spring
加載器目前有兩種選擇:ContextLoaderListener和ContextLoaderServlet。 這兩者在功能上完全等同,只是一個是基于Servlet2.3版本中新引入的Listener接口實(shí)現(xiàn),而另一個基于Servlet接口實(shí)現(xiàn)。開發(fā)中可根據(jù)目標(biāo)Web容器的實(shí)際情況進(jìn)行選擇。
------------------------------------------------------------------------------------------- spring為ApplicationContext提供有三種實(shí)現(xiàn)(舉例) spring為ApplicationContext提供的3種實(shí)現(xiàn)分別為:ClassPathXmlApplicationContext,F(xiàn)ileSystemXmlApplicationContext和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");//根據(jù)具體路徑加載文件
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());
|