一個專案中:只能存在一個 WebMvcConfigurationSupport
在一個專案中WebMvcConfigurationSupport只能存在一個,多個的時候,只有一個會生效。
靜態檔案訪問失效原因:寫配置的時候,沒有注意,在網上找的程式碼,靜態檔案放行的配置,在幾天前經過各種嘗試,什麼application.properties裡面配置無效,需要通過自定義實現程式碼放行靜態配置,
改成下面的編碼方式放行靜態資源:都是正常的
後來下面中需要用到 IdWorker生成主鍵,但是在返回給前端頁面時,資料精度經常丟失,很難保證精度,於是網上尋找解決辦法,最終採用如下方法:
目錄結構如下:
由於這兩個配置都繼承了WebMvcConfigurationSupport ,只能有一個生效
導致原來的靜態檔案放行已經失效了
解決辦法:
方案一:將LongToJsonConfig的繼承去掉
方案二:將兩個配置寫在一個類裡面。
很不幸的是:我採用方案一,結果靜態檔案好了,但是轉換器轉換檔案失敗了。
修改完成後靜態檔案能夠正常訪問了:
尷尬的事情是一個接著一個,剛剛把靜態檔案恢復正常了,忘了測試idworker了,一測試發現不能夠正常轉換了,你說尷尬不尷尬啊。
下面是兩條idworker生成的資料庫資料。
rest介面測試工具測試時還是正常的:
vue前臺進行訪問時:
精度還是丟失了,改用方案二:
前端vue正常返回資料
開啟WebMvcConfigurationSupport類,發現有一個和當前轉化器配置同名方法,由於網上的找的,沒有說明是配置類的重寫的方法,導致判斷失誤。
綜上所述:自定義轉化器必須重寫WebMvcConfigurationSupport 的 configureMessageConverters方法
原始碼上面的翻譯;
這是一個大坑,折騰了一天半,希望對遇到的朋友有所幫助~~~
部落格翻了不下100篇,都是講的怎麼放行靜態資源通過自定義方法,這根本不是我想要的,最後還是應該感謝這位兄弟:一句不經意的話提醒了我,萬分感謝~~~