SpringBoot本地磁盤映射問題
SpringBoot本地磁盤映射
出于安全性考慮,SpringBoot無法直接訪問本地磁盤的文件。在某些應用場景下,需要訪問例如本地的圖片等一些內容。這時候,我們可以通過創(chuàng)建一個虛擬路徑來指向本地磁盤文件。
重寫WEB配置類,添加新的靜態(tài)資源路徑配置。
代碼如下:
@Configuration public class WebConfig implements WebMvcConfigurer { ? ? @Override ? ? public void addResourceHandlers(ResourceHandlerRegistry registry) { ? ? ? ? registry.addResourceHandler("/watch/**").addResourceLocations("file:C://img/"); ? ? } }
這種方法相當于增加靜態(tài)資源路徑。SpringBoot本身自帶的靜態(tài)資源路徑并不會被替代。
SpringBoot本地磁盤路徑映射遇到的坑
今天學習了Springboot的磁盤映射,也就是將電腦上的D盤作為靜態(tài)資源讓用戶可以通過IP或外網地址訪問到,網上大多說的是繼承 WebMvcConfigurerAdapter 但這個方法已經過時了,網上又有好多人說實現(xiàn)WebMvcConfigurer幾口或者繼承另一個類(忘了是啥了),我用的是實現(xiàn)WebMvcConfigurer,剛開始不知道怎么寫,具體實現(xiàn)那個方法,就去網上查最后結果如下
@Configuration public class WebMvcConfig implements WebMvcConfigurer { public void ?addResourceHandlers(ResourceHandlerRegistry registry){ ? ? registry.addResourceHandler("/**").addResourceLocations("D:\\"); ? ? WebMvcConfigurer.super.addResourceHandlers(registry); } }
這樣死活訪問不到頁面一直報錯404,糾結了一上午,偶然找到了一篇文章,上面是這樣寫的:
@Configuration public class WebMvcConfig implements WebMvcConfigurer { public void ?addResourceHandlers(ResourceHandlerRegistry registry){ ? ? registry.addResourceHandler("/**").addResourceLocations("file:D:\\"); ? ? WebMvcConfigurer.super.addResourceHandlers(registry); } }
復制過來之后,神奇的能訪問到資源了,可能是由于視覺受IDEA方法屬性的提示影響還是怎么著,一直以為file:是編輯軟件的提示不用加,導致后來@value取值時以為取不到呢!現(xiàn)在記錄下來預防自己以后再忘了
@Configuration public class WebMvcConfig implements WebMvcConfigurer { @Value("${url.diskUrl}") private String diskUrl; public void ?addResourceHandlers(ResourceHandlerRegistry registry){ ? ? registry.addResourceHandler("/**").addResourceLocations(diskUrl); ? ? WebMvcConfigurer.super.addResourceHandlers(registry); } }
配置文件
url: diskUrl: file:D:\ webUrl: http://localhost:8080/
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
SpringBoot整合RabbitMQ, 實現(xiàn)生產者與消費者的功能
這篇文章主要介紹了SpringBoot整合RabbitMQ, 實現(xiàn)生產者與消費者的功能,幫助大家更好得理解和學習使用SpringBoot框架,感興趣的朋友可以了解下2021-03-03Win10系統(tǒng)下配置Java環(huán)境變量
今天給大家?guī)淼氖顷P于Java的相關知識,文章圍繞著Win10系統(tǒng)下配置Java環(huán)境變量展開,文中有非常詳細的介紹及圖文示例,需要的朋友可以參考下2021-06-06深入探究Java?@MapperScan實現(xiàn)原理
之前是直接在Mapper類上面添加注解@Mapper,這種方式要求每一個mapper類都需要添加此注解,麻煩。通過使用@MapperScan可以指定要掃描的Mapper類的包的路徑,這篇文章深入探究Java?@MapperScan的實現(xiàn)原理2023-01-01