久久久久久国产精品免费免,久久成人免费观看全部免费,久久久久久久久久免免费精品

網(wǎng)站開發(fā) APP開發(fā) 小程序開發(fā) SEO優(yōu)化 公司新聞

BeanDefanition的Resource定位

2018-05-30 10:10:28
1033

  這是SpringIOC初始化的第一步,找到水

  當(dāng)我們以編程的方式去使用Factory時(shí),首先會(huì)定義一個(gè)對(duì)象的Resource來定位要使用的BeadnDefinition,這時(shí)我們使用的是ClassPathResouce,這就以為著,這個(gè)Resource會(huì)類路徑去尋找這個(gè)xml文件,雖然說Resource是資源的意思,但是這不意味著DefaultListableFacory能夠直接使用這個(gè)Resource資源,這個(gè)資源是要被經(jīng)過凈化的呢,Spring通過BeanDefinitionReader對(duì)這些Resource資源進(jìn)行一些處理,這時(shí)我們就可以跟明顯的看到直接使用ApplicationContext的好處了,applicationContext里面已經(jīng)有很多加載不同Resource的Reader的實(shí)現(xiàn),而如果直接使用DefaultListableBeanFactory的話需要為他配置特定的ResourceReader才能完成相應(yīng)的功能,當(dāng)然么有絕對(duì)的利弊,直接使用DefaultListableFactory更具有靈活性。

  回到我們經(jīng)常使用的ApplicationContext中,例如FileSystemXmlApplicationContext,ClassPathXmlApplication以及XmlWebApplicationContext中,我們很簡(jiǎn)單的能從他們的名字就能看到FileSystem使用文件系統(tǒng)中尋找的Resource,ClassPath是直接從類路徑去尋找文件的載入Resource,webXml是直接從網(wǎng)上載入Resource

  我們以文件系統(tǒng)為例分析如何完成定位的,

  FileSystemXmlApplicationContext中有好多個(gè)構(gòu)造器,最大的,最長(zhǎng)的構(gòu)造有三個(gè)參數(shù)

  其余的分別是一個(gè)或者是兩個(gè)參數(shù),都是調(diào)用了最大的參數(shù)構(gòu)造器,這個(gè)構(gòu)造是這樣的

  public FileSystemXmlApplicationContext(String[] configLOcation, boolean refresh, ApplicationContext parent){

  super(parent);

  setConfigLocation(configLOcation);

  If(refresh){refresh()}

  }

  我們可以清楚的看到該方法有三個(gè)作用:①設(shè)置父類容器 ②設(shè)置資源路徑 ③調(diào)用初始化方法

  該類中還有另一個(gè)方法getResourceByPath()

  Protect Resorce getResourceByPath(String path){

  If(path!=null && path.startWith(“/”)){path=path.subString(1) }

  Return new FileSystemResource(path);

  }

  該方法在BeanDefanitionReader中被調(diào)用采用了模板的形式具體的定位在各個(gè)子類實(shí)現(xiàn)返回某種類型的Resource

?
<rp id="cxbmw"></rp>

<sup id="cxbmw"></sup>
  • <rp id="cxbmw"><form id="cxbmw"><nav id="cxbmw"></nav></form></rp>
    <big id="cxbmw"><delect id="cxbmw"><font id="cxbmw"></font></delect></big>
    <rp id="cxbmw"></rp>
    主站蜘蛛池模板: 浦东新区| 镇宁| 留坝县| 浪卡子县| 承德市| 长乐市| 建昌县| 邓州市| 中方县| 新巴尔虎左旗| 于都县| 北京市| 巩义市| 临安市| 高州市| 合肥市| 墨竹工卡县| 白河县| 和硕县| 荆门市| 湟中县| 通渭县| 东兰县| 太谷县| 塘沽区| 建德市| 拉孜县| 巢湖市| 金堂县| 富顺县| 曲阜市| 营山县| 湘阴县| 安达市| 宁晋县| 金华市| 墨玉县| 宁武县| 武夷山市| 东兰县| 松潘县|