歡迎光臨
每天分享高質量文章

Spring Boot:定製static path mappings

在Spring Boot:定製URL匹配規則一文中我們展示瞭如何調整URL請求匹配到對應的控制器方法的規則。類似得,也可以控制應用程式對靜態檔案(前提是被打包進部署包)的處理。

假設我們需要通過URL http://localhost:8080/internal/application.properties對外暴露當前程式的配置。

How Do

  • 在WebConfiguration類中添加相應的配置,代碼如下:

  1. @Overridepublic

  2. void addResourceHandlers(ResourceHandlerRegistry registry) {

  3.    registry.addResourceHandler("/internal/**").

  4.            addResourceLocations("classpath:/");

  5. }

  • 通過 mvn spring-boot:run啟動應用程式

  • 通過postman訪問 http://localhost:8080/internal/application.properties就得到下列的結果

分析

通過*addResourceHandlers(ResourceHandlerRegistry registry) *方法可以為應用程式中位於classpath路徑下或檔案系統下的靜態資源配置對應的URL,供其他人通過瀏覽器訪問。在這個例子中,我們規定所有以“/internal”開頭的URL請求會在classpath:/目錄下查找信息。

  • registry.addResourceHandler(“/internal/“)方法添加一個資源處理器,用於註冊程式中的靜態資源,該函式傳回一個ResourceHandlerRegistration物件,這個物件可以進一步配置。/internal/字串是一個路徑樣式串,PathMatcher接口用它匹配對應的URL請求,這裡預設使用AntPathMatcher進行匹配。

  • 由上個方法傳回的ResourceHandlerRegistration實體呼叫addResourceLocations(“/classpath:/”)方法來規定從哪個目錄下加載資源檔案。這個目錄路徑或者是有效的檔案系統路徑,或者是classpath路徑。

PS:通過setCachePeriod(Interger cachePeriod)方法可以設置資源處理器的快取周期——每隔cachePeriod秒就快取一次。

赞(0)

分享創造快樂