我們經(jīng)常用的就是擴(kuò)展它的接口ApplicationContext.而它的實(shí)現(xiàn)又有多種,我們只介紹一些常用的實(shí)現(xiàn)。applicationContext.xml文件是位于Src目錄下。
第一種就是:
ApplicationContext context = new ClassPathXmlApplicationContext(
"applicationContext.xml");//用這個(gè)成功了,不過要在web-inf和src下面同時(shí)建立兩個(gè)(后來改了,只在src下面建立就可以,見后面,O(∩_∩)O~)
第二種就是:
ApplicationContext context = new FileSystemXmlApplicationContext(
"Src/applicationContext.xml ");//src下面建立xml的時(shí)候用該方法
然后DriveCar dc=(DriveCar)ctx.getBean("DriveCar");就可以使用了……
注意上面兩種加載是的路徑。
然后在把他們轉(zhuǎn)換成BeanFactory就可以了。需要用到那個(gè)bean就用getBean(“”)取得,可以根據(jù)id或name都可以。
除此之外還有兩種加載的方法:
第三種方法:
ClassPathResource resource = new ClassPathResource("applicationContext.xml");
BeanFactory factory = new XmlBeanFactory(resource);
第四種方法:
Resource resource = new FileSystemResource("Src/applicationContext.xml");
BeanFactory factory = new XmlBeanFactory(resource);
同樣要注意上面的路徑的不同。其實(shí)classpath相對應(yīng)的路徑就是Src目錄下,而fileSystem相對的是工程目錄。所以它們路徑是有區(qū)別的,加載時(shí)也要細(xì)心,不然就會報(bào)java.io.FileNotFoundException(系統(tǒng)找不到指定的文件)的異常了。
第三四種方法沒有測試。
剛又查了spring的ContextLoaderListener,可以再web.xml中<web-app></web-app>之間添加
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/applicationContext*.xml
</param-value>
</context-param>
</web-app>
就可以只在src目錄下建立applicationContext.xml了,呵呵