項目中將圖片服務器分離出來,相關配置單獨配置到一個 properties 文件中,並使用spring管理該配置文件,如圖:web
使用的是Nginx 來負責圖片服務的處理,關鍵配置以下:spring
啓動項目進行圖片上傳的時候卻死活找不到配置文件中的地址tomcat
如上是關鍵代碼,properties 是spring管理的,並在控制層進行注入操做,圖片沒法上傳獲取不到地址。查錯許久後將該 properties 文件交給springMVC管理,問題意外解決。能夠肯定問題的緣由是spring的父子容器問題。服務器
spring一共有2個容器spa
啓動tomcat後啓動兩個spring容器:xml
一、spring經過web.xml來啓動的。(父)圖片
二、springMVC來啓動的。(子)資源
關係與限制:圖片上傳
一、子容器能訪問父容器的資源。(bean)容器
二、父容器不能訪問子容器的資源。
也就是說,咱們的控制層是springMVC 來處理,而service層是spring來管理的,而若是 properties 文件是spring管理,那麼由於容器限制,在控制層注入 properties 文件是沒法成功的,而放到springMVC來管理雖然能夠成功,可是卻有代碼重用性問題,解決方案,在service層創建一個類,將屬性注入放到這裏來處理
在控制層將這個類注入
間接實現了父容器沒法訪問子容器資源的問題。
但願對你們有幫助,若有不對之處,還請指正