Spring中ClassPathXmlApplicationContext類的使用詳解
ClassPathXmlApplicationContext類的使用
一、簡(jiǎn)單的用ApplicationContext做測(cè)試
獲得Spring中定義的Bean實(shí)例(對(duì)象).可以用:
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
RegisterDAO registerDAO = (RegisterDAO)ac.getBean("RegisterDAO");如果是兩個(gè)以上:
ApplicationContext ac = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml","dao.xml"});或者用通配符:
ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:/*.xml");二、ClassPathXmlApplicationContext
[只能讀放在web-info/classes目錄下的配置文件]和FileSystemXmlApplicationContext的區(qū)別
classpath:前綴是不需要的,默認(rèn)就是指項(xiàng)目的classpath路徑下面;
如果要使用絕對(duì)路徑,需要加上file:前綴表示這是絕對(duì)路徑;
對(duì)于FileSystemXmlApplicationContext:
默認(rèn)表示的是兩種:
1.沒有盤符的是項(xiàng)目工作路徑,即項(xiàng)目的根目錄;
2.有盤符表示的是文件絕對(duì)路徑.
如果要使用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前綴是可以使用絕對(duì)路徑的
? ? // ApplicationContext factory = new ClassPathXmlApplicationContext("file:F:/workspace/example/src/appcontext.xml");
? ? // 用文件系統(tǒng)的路徑,默認(rèn)指項(xiàng)目的根路徑
? ? // ApplicationContext factory = new FileSystemXmlApplicationContext("src/appcontext.xml");
? ? // ApplicationContext factory = new FileSystemXmlApplicationContext("webRoot/WEB-INF/appcontext.xml");
? ? // 使用了classpath:前綴,這樣,FileSystemXmlApplicationContext也能夠讀取classpath下的相對(duì)路徑
? ? // 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方法出錯(cuò)了,因?yàn)閼?yīng)該根據(jù)BeforeAdvice.class路徑找到applicationContext.xml,所以如下圖就正常了:

也可以如下圖寫法:

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
netflix.discovery.shared.transport.TransportException:Cannot
這篇文章主要介紹了netflix.discovery.shared.transport.TransportException:Cannot execute request on any known server報(bào)錯(cuò)問題及解決方法,感興趣的朋友一起看看吧2023-09-09
阿里dubbo出錯(cuò)提示Thread pool is EXHAUSTED問題及解決方法
這篇文章主要介紹了阿里dubbo出錯(cuò)提示Thread pool is EXHAUSTED的問題及解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
一文詳解如何配置MyBatis實(shí)現(xiàn)打印可執(zhí)行的SQL語句
在MyBatis中,動(dòng)態(tài)SQL是一個(gè)強(qiáng)大的特性,允許我們?cè)赬ML映射文件或注解中編寫條件語句,根據(jù)運(yùn)行時(shí)的參數(shù)來決定SQL的具體執(zhí)行內(nèi)容,這篇文章主要給大家介紹了關(guān)于如何配置MyBatis實(shí)現(xiàn)打印可執(zhí)行的SQL語句的相關(guān)資料,需要的朋友可以參考下2024-08-08
Java HashMap 如何正確遍歷并刪除元素的方法小結(jié)
這篇文章主要介紹了Java HashMap 如何正確遍歷并刪除元素的方法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
Spring Data JPA+kkpager實(shí)現(xiàn)分頁功能實(shí)例
本篇文章主要介紹了Spring Data JPA+kkpager實(shí)現(xiàn)分頁功能實(shí)例,具有一定的參考價(jià)值,有興趣的可以了解一下2017-06-06
詳解Spring Cloud Eureka多網(wǎng)卡配置總結(jié)
本篇文章主要介紹了詳解Spring Cloud Eureka多網(wǎng)卡配置總結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04

