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