在spring內部,針對於資源檔案有乙個統一的介面resource表示。
其主要實現類有classpathresource、filesystemresource、urlresource、bytearrayresource、servletcontextresource和inputstreamresource。
resource介面中主要定義有以下方法:
最常用的有四個:
resourceloader 介面是用來載入 resource 物件的。它通過乙個精確路徑的位址資訊進行載入resource,也可以通過ant風格的位址描述載入匹配的resource。
ant路徑萬用字元支援?,*,**
。
注意萬用字元匹配不包括目錄分隔符「/」。
萬用字元說明
?匹配任何單字元
*匹配0或者任意數量的字元
**匹配0或者更多的目錄
匹配樣例
url路徑
說明/**/example
/*/.jsp
匹配(matches)任何的.jsp 檔案
為了更加精確表示resource型別,可以加入對應的字首標識來說明。
如路徑:com/baobaotao/beanfactory/bean.xml
位址字首
示例對應資源型別
從類路徑中載入資源,資源檔案可以在標準的檔案系統中,也可以在jar或者zip的類包中
使用urlresource從檔案系統目錄中裝載資源,可採用絕對或相對路徑。
使用urlresource從檔案系統目錄中裝載資源,可採用絕對或相對路徑。
使用urlresource從ftp伺服器中裝載資源
classpath與classpath*的區別
準備工作
在專案的「resources」建立「meta-inf」目錄,然後在其下建立乙個「index.list」檔案。同時在「org.springframework.beans-3.0.5.release.jar」和「org.springframework.context-3.0.5.release.jar」兩個jar包裡也存在相同目錄和檔案。然後建立乙個「license」檔案,該檔案存在於「com.springsource.cn.sf.cglib-2.2.0.jar」裡。
「classpath」: 用於載入類路徑(包括jar包)中的乙個且僅乙個資源;對於多個匹配的也只返回乙個,所以如果需要多個匹配的請考慮「classpath*:」字首;
對於匹配多個資源的情況下,會優先返回相對於本工程中下面的classpath路徑下的匹配的資源。
@test
public
void
testclasspathprefix() throws ioexception
「classpath*」: 用於載入類路徑(包括jar包)中的所有匹配的資源。帶萬用字元的classpath使用「classloader」的「enumeration getresources(string name)」方法來查詢萬用字元之前的資源,然後通過模式匹配來獲取匹配的資源。如「classpath:meta-inf/*.list」將首先載入萬用字元之前的目錄「meta-inf」,然後再遍歷路徑進行子路徑匹配從而獲取匹配的資源。
@test
public
void
testclasspathasteriskprefix () throws ioexception
在宣告資源位址路徑的時候,可以混合使用ant路徑萬用字元和字首標識。
如:classpath:com/**/test.xml
: 匹配com路徑下(當前目錄及其子孫目錄)的test.xml檔案;
Spring Resource檔案操作介面
spring中獲取資源的方式一共有以下四種 通過resource介面獲取資源 通過resourceloader介面獲取資源 將resource注入到bean中的方式獲取資源 下面是對每種方式的詳細講解 resource介面的實現類有 實現類 說明classpathresource 通過類路徑獲取資源...
UImageview加邊框 加陰影
uiimageview imgvphoto uiimageview alloc init 新增邊框 calayer layer imgvphoto layer layer.bordercolor uicolor whitecolor cgcolor layer.borderwidth 5.0f 新增...
iOS給UIview 加陰影加圓角 加邊框
1.加陰影,oc 要匯入框架 import self.view.layer.shadowopacity 0.5 陰影透明度 self.view.layer.shadowcolor uicolor graycolor cgcolor 陰影的顏色 self.view.layer.shadowradius...