1. 程式人生 > >FileSystemXmlApplicationContext、ClassPathXmlApplicationContext和XmlWebApplicationContext簡介

FileSystemXmlApplicationContext、ClassPathXmlApplicationContext和XmlWebApplicationContext簡介

今天在用Spring時遇到一個問題,提示找不到applicationContext.xml檔案。原來是在載入這個檔案時呼叫的方法不太合適,所以造成了程式找不到專案下的xml配置檔案。

我們常用的載入context檔案的方法有如下三個:

1、FileSystemXmlApplicationContext

這個方法是從檔案絕對路徑載入配置檔案,例如:

ApplicationContext ctx = new FileSystemXmlApplicationContext( "G:/Test/applicationcontext.xml ");

如果在引數中寫的不是絕對路徑,那麼方法呼叫的時候也會預設用絕對路徑來找,我測試的時候發現預設的絕對路徑是eclipse所在的路徑。

採用絕對路徑的話,程式的靈活性就很差了,所以這個方法一般不推薦。

如果要使用classpath路徑,需要加入字首classpath:

2、ClassPathXmlApplicationContext

這個方法是從classpath下載入配置檔案(適合於相對路徑方式載入),例如:

ApplicationContext ctx = new ClassPathXmlApplicationContext( "/applicationcontext.xml ");

該方法引數中classpath:字首是不需要的,預設就是指專案的classpath路徑下面;這也就是說用ClassPathXmlApplicationContext時預設的根目錄是在WEB-INF/classes下面,而不是專案根目錄。這個需要注意!

3、XmlWebApplicationContext

專為web工程定製的方法,推薦Web專案中使用。例如:

ServletContext servletContext = request.getSession().getServletContext();

ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);