前言spring
spring framework將資源抽象,面向接口編程,以便使框架和具體實現相互分離,這也是spring非侵入式的體現編程
資源模塊接口的設計圖數組
接下來仍是須要先了解每個接口的功能app
1.InputStreamSource框架
2.Resource
對底層資源的一種抽象描述,好比文件或classpath的資源;url
3.WritableResource
對Resource的擴展接口,擴展了寫出的功能
4.AbstractResource
爲實現類提供便利的基類
5.BeanDefinitionResource 主要是包裹了一個BeanDefinition,其中spa
7.ClassPathResource 定位classpath下的資源
以上是對資源高度抽象的接口設計,下面要看到的是對資源加載的接口設計
8.ResourceLoader
加載資源的策略接口(如filesystem or classpath ), ApplicationContext繼承了該功能,能夠在ApplicationContext運行時,使用特定的資源加載策略讀取資源;DefaultResourceLoader是一個獨立的實現,在ApplicationContext外部使用;
9.ResourcePatternResolver
策略接口,根據location 模式(如ant-style)解析爲Resource資源對象;ApplicationContext經過ResourceLoaderAware將ResourceLoader注入上下文,加載資源;設計
10.PathMatchingResourcePatternResolver 是一個獨立的實現,在applicationcontext外部使用;輸入的模式必須匹配實現的策略;該接口只是提供了轉換方法而不是指定了資源模式的具體格式;
對象