Spring中ClassPathXmlApplicationContext類的使用詳解
ClassPathXmlApplicationContext類的使用
一、簡單的用ApplicationContext做測試
獲得Spring中定義的Bean實例(對象).可以用:
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); RegisterDAO registerDAO = (RegisterDAO)ac.getBean("RegisterDAO");
如果是兩個以上:
ApplicationContext ac = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml","dao.xml"});
或者用通配符:
ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:/*.xml");
二、ClassPathXmlApplicationContext
[只能讀放在web-info/classes目錄下的配置文件]和FileSystemXmlApplicationContext的區(qū)別
classpath:前綴是不需要的,默認就是指項目的classpath路徑下面;
如果要使用絕對路徑,需要加上file:前綴表示這是絕對路徑;
對于FileSystemXmlApplicationContext:
默認表示的是兩種:
1.沒有盤符的是項目工作路徑,即項目的根目錄;
2.有盤符表示的是文件絕對路徑.
如果要使用classpath路徑,需要前綴classpath:
public class HelloClient { ? protected static final Log log = LogFactory.getLog(HelloClient.class); ? public static void main(String[] args) { ? ? // Resource resource = new ClassPathResource("appcontext.xml"); ? ? // BeanFactory factory = new XmlBeanFactory(resource); ? ? // 用classpath路徑 ? ? // ApplicationContext factory = new ClassPathXmlApplicationContext("classpath:appcontext.xml"); ? ? // ApplicationContext factory = new ClassPathXmlApplicationContext("appcontext.xml"); ? ? // ClassPathXmlApplicationContext使用了file前綴是可以使用絕對路徑的 ? ? // ApplicationContext factory = new ClassPathXmlApplicationContext("file:F:/workspace/example/src/appcontext.xml"); ? ? // 用文件系統(tǒng)的路徑,默認指項目的根路徑 ? ? // ApplicationContext factory = new FileSystemXmlApplicationContext("src/appcontext.xml"); ? ? // ApplicationContext factory = new FileSystemXmlApplicationContext("webRoot/WEB-INF/appcontext.xml"); ? ? // 使用了classpath:前綴,這樣,FileSystemXmlApplicationContext也能夠讀取classpath下的相對路徑 ? ? // ApplicationContext factory = new FileSystemXmlApplicationContext("classpath:appcontext.xml"); ? ? // ApplicationContext factory = new FileSystemXmlApplicationContext("file:F:/workspace/example/src/appcontext.xml"); ? ? // 不加file前綴 ? ? ApplicationContext factory = new FileSystemXmlApplicationContext("F:/workspace/example/src/appcontext.xml"); ? ? IHelloWorld hw = (IHelloWorld)factory.getBean("helloworldbean"); ? ? log.info(hw.getContent("luoshifei")); ? } }
使用ClassPathXmlApplicationContext遇到的問題
上面執(zhí)行main方法出錯了,因為應該根據(jù)BeforeAdvice.class路徑找到applicationContext.xml,所以如下圖就正常了:
也可以如下圖寫法:
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
IDEA運行導入的javaweb項目tomcat正常,但是運行失敗404問題
這篇文章主要介紹了IDEA運行導入的javaweb項目tomcat正常但是運行失敗404問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07java多線程編程之使用runnable接口創(chuàng)建線程
實現(xiàn)Runnable接口的類必須使用Thread類的實例才能創(chuàng)建線程,通過Runnable接口創(chuàng)建線程分為以下兩步2014-01-01java使用listIterator逆序arraylist示例分享
對于列表而言,除了Iterator,還提供了一個功能更加強大的ListIterator。它可以實現(xiàn)逆序遍歷列表中的元素。本示例將使用其逆序遍歷ArrayList2014-02-02