您好,登錄后才能下訂單哦!
本篇內容介紹了“如何通過Spring來讀取文件”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
在java日常業務開發中我們經常有可能讀取一些自定義配置或者文件。比如說公私鑰文件、一些固定的詞典文件之類的,這一類統稱為資源(Resource)。很多情況下都是自己寫IO來讀取。今天開始你可以不用在造輪子了。因為Spring自帶有資源加載功能,甚至還有非常便利的方法將讀取的內容注入Spring bean。接下來我們就來見識一下吧。
我們可以使用Resource接口簡化資源文件的定位。Spring幫助我們使用資源加載器查找和讀取資源,資源加載器根據提供的路徑決定選擇哪個Resource實現。
org.springframework.core.io.Resource接口常用的有兩個實現類: org.springframework.core.io.ClassPathResource 用來加載classpath下的資源,我們直接讀取springboot 配置文件 application.properties,其中已經寫入了一個配置 server.port=8080
org.springframework.core.io.FileSystemResource 用來加載系統文件,通常通過文件的絕對或者相對路徑來讀取。上面的例子我們用這個來試一試。不同的是這次我們需要文件的路徑。
如果你業務中需要使用延遲加載,我們可以使用類ResourceLoader:
我們也可以使用@Autowired將ResourceLoader注入我們的bean :
根據上圖ApplicationContext 繼承了ResourceLoader 接口。因此我們可以通過Spring bean 注入的方式來讀取資源。
這種使用方式看上去更Spring,接著往下看,還有更Spring的騷操作。
我們直接使用@Value注解將資源直接注入Spring bean。還有這種操作!不行了!我已經迫不及待的要寫幾行試試了:
完美無暇!斷言全部正確!不知道能不能讀取圖片。我想也是可以的,這個留給你自己發掘。但是就這么結束了嗎?玩一個刺激點的。為什么不直接解析出來并注入對象呢?SpEL(Spring Expression Language)可以做到這一點。讓我們來見識一下吧。 2.4 使用SpEL直接解析 為了展現靈活性,這里我們定義自己的解析類。我們定義了一個讀取配置文件的工具類 cn.felord.mapstruct.util.ResourceReader
兩個方法都是一樣的效果,但是要展現的是不同途徑。下面的代碼必須讓它的出場與眾不同:
被注釋掉的代碼同樣管用,你很容易觀察到它們之間的差別。
“如何通過Spring來讀取文件”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。