Springboot內(nèi)置tomcat配置虛擬路徑過程解析
在Springboot中默認(rèn)的靜態(tài)資源路徑有:classpath:/METAINF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,從這里可以看出這里的靜態(tài)資源路徑都是在classpath中(也就是在項(xiàng)目路徑下指定的這幾個(gè)文件夾)
試想這樣一種情況:一個(gè)網(wǎng)站有文件上傳文件的功能,如果被上傳的文件放在上述的那些文件夾中會有怎樣的后果?
- 網(wǎng)站數(shù)據(jù)與程序代碼不能有效分離;
- 當(dāng)項(xiàng)目被打包成一個(gè).jar文件部署時(shí),再將上傳的文件放到這個(gè).jar文件中是有多么低的效率;
- 網(wǎng)站數(shù)據(jù)的備份將會很痛苦。
此時(shí)可能最佳的解決辦法是將靜態(tài)資源路徑設(shè)置到磁盤的基本個(gè)目錄。在Springboot中可以直接在配置文件中覆蓋默認(rèn)的靜態(tài)資源路徑的配置信息:application.properties配置文件如下:
spring.mvc.static-path-pattern=/**
spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:這里寫自己的上傳文件路徑(注意要以/結(jié)尾)
spring.mvc.static-path-pattern=/**表示所有的訪問都經(jīng)過靜態(tài)資源路徑;
spring.resources.static-locations在這里配置靜態(tài)資源路徑,前面說了這里的配置是覆蓋默認(rèn)配置,所以需要將默認(rèn)的也加上否則static、public等這些路徑將不能被當(dāng)作靜態(tài)資源路徑,在這個(gè)最末尾的file:${web.upload-path}之所有要加file:是因?yàn)橹付ǖ氖且粋€(gè)具體的硬盤路徑,其他的使用classpath指的是系統(tǒng)環(huán)境變量。
由于前面已經(jīng)在靜態(tài)資源路徑中上傳了一個(gè)名為1.jpg的圖片,也使用server.port=1122設(shè)置了端口號為1122,所以可以通過瀏覽器打開:http://localhost:1122/1.jpg訪問到剛剛上傳的圖片。但是要注意,如果你在springboot的配置文件中加了屬性server.context-path,即項(xiàng)目名,那么訪問的時(shí)候一定要加上這個(gè)配置的屬性值,不然404.
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- SpringBoot內(nèi)置tomcat參數(shù)調(diào)優(yōu)的實(shí)現(xiàn)
- Springboot內(nèi)置Tomcat配置參數(shù)調(diào)優(yōu)方式
- springboot內(nèi)置的tomcat支持最大的并發(fā)量問題
- springboot內(nèi)置tomcat調(diào)優(yōu)并發(fā)線程數(shù)解析
- SpringBoot內(nèi)置tomcat調(diào)優(yōu)測試優(yōu)化
- SpringBoot內(nèi)置tomcat啟動原理詳解
- springboot查看和修改內(nèi)置tomcat版本的方法步驟
相關(guān)文章
Java服務(wù)剛啟動時(shí)接口超時(shí)排查全過程
這篇文章主要為大家介紹了Java服務(wù)剛啟動時(shí),一小波接口超時(shí)排查全過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
Java觀察者模式之實(shí)現(xiàn)對象間的一對多依賴
這篇文章主要介紹了Java觀察者模式之實(shí)現(xiàn)對象間的一對多依賴的方法,Java觀察者模式是一種行為型設(shè)計(jì)模式,用于實(shí)現(xiàn)對象之間的消息傳遞和通信,文中有詳細(xì)的實(shí)現(xiàn)步驟和代碼示例,,需要的朋友可以參考下2023-05-05
SpringBoot項(xiàng)目統(tǒng)一枚舉轉(zhuǎn)換實(shí)踐過程
文章介紹了在Spring Boot項(xiàng)目中統(tǒng)一枚舉轉(zhuǎn)換的實(shí)踐,通過使用自定義的父枚舉接口和AttributeConverter、ConverterFactory、JsonSerializer和JsonDeserializer等工具,實(shí)現(xiàn)了枚舉與數(shù)據(jù)庫、請求參數(shù)、響應(yīng)參數(shù)和消息參數(shù)之間的自動轉(zhuǎn)換2024-12-12
java8 stream 如何打印數(shù)據(jù)元素
這篇文章主要介紹了java8 stream 如何打印數(shù)據(jù)元素,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
Java mockito單元測試實(shí)現(xiàn)過程解析
這篇文章主要介紹了Java mockito單元測試實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
為什么不推薦使用BeanUtils屬性轉(zhuǎn)換工具示例詳解
這篇文章主要介紹了為什么不推薦使用BeanUtils屬性轉(zhuǎn)換工具,本文通過示例代碼給大家詳細(xì)介紹,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07

