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)文章
IDEA運(yùn)行導(dǎo)入的javaweb項(xiàng)目tomcat正常,但是運(yùn)行失敗404問題
這篇文章主要介紹了IDEA運(yùn)行導(dǎo)入的javaweb項(xiàng)目tomcat正常但是運(yùn)行失敗404問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07Java新手學(xué)習(xí)之IO流的簡(jiǎn)單使用
IO主要用于設(shè)備之間的數(shù)據(jù)傳輸,Java將操作數(shù)據(jù)流的功能封裝到了IO包中,這篇文章主要給大家介紹了關(guān)于Java新手學(xué)習(xí)之IO流簡(jiǎn)單使用的相關(guān)資料,需要的朋友可以參考下2021-10-10java多線程編程之使用runnable接口創(chuàng)建線程
實(shí)現(xiàn)Runnable接口的類必須使用Thread類的實(shí)例才能創(chuàng)建線程,通過Runnable接口創(chuàng)建線程分為以下兩步2014-01-01Spring IOC的相關(guān)注解運(yùn)用詳解
這篇文章主要介紹了Spring IOC的相關(guān)注解運(yùn)用詳解,純注解實(shí)現(xiàn)IOC需要一個(gè)Java類代替xml文件,這個(gè)Java類上方需要添加@Configuration,表示該類是一個(gè)配置類,作用是代替配置文件,需要的朋友可以參考下2023-08-08java使用listIterator逆序arraylist示例分享
對(duì)于列表而言,除了Iterator,還提供了一個(gè)功能更加強(qiáng)大的ListIterator。它可以實(shí)現(xiàn)逆序遍歷列表中的元素。本示例將使用其逆序遍歷ArrayList2014-02-02