spring資源讀取
spring中對資源的讀取提供有自己的新方案,比傳統IO操作更加智能方便。
對於所有的資源處置,spring提供了Resource接口,該接口中的方法都是通過其父接口InputStreamSource實現的。該接口有四個常用子類,通過這四個子類實現資源獲取:
ClassPathResource、FileSystemResource、UrlResource、ByteArrayResource。
這四個子類中最重要的是ClassPathResource,是用來讀取classpath下的資源文件:
此時可以發現,我們這樣都是通過子類直接實例化父接口,而這樣就違反了spring的Ioc&DI技術的理念,為了解決這樣產生的耦合性問題,提供了ResourceLoader接口。用來實現接口對象
文件資源:fill:路徑
網絡資源:http://路徑
ClassPath資源:classpath:路徑
而獲取資源中最為重要的是獲取ClassPath下的資源:
這個時候雖然避免了獲取資源時使用關鍵字new,但是在定義資源加載器(ResourceLoader)的時候還是使用到了new,這個時候最好的做法是將資源利用配置文件進行註入,再交給容器管理。\
以下為重點:
【spring-base】創建一個專門讀取資源的Bean對象:
【spring-base】在spring-base.xml中配置該類的bean對象。
這樣將實例化對象交給spring容器,避免了產生耦合:
對於資源,一般讀取的不是某個資源,而是某一類資源,這樣就需要使用到路徑通配符:
? 0或1位任意字符
* 0或1或n位任意字符
** 匹配任意的字符
【spring-base】修改spring-base.xml
spring資源讀取