兼容 Spring Boot 1.x 和 2.x 配置類參數綁定的工具類 SpringBootBindUtil 原

爲了讓我提供的通用 Mapper 的 boot-starter 同時兼容 Spring Boot 1.x 和 2.x,增加了這麼一個工具類。

在 Spring Boot 中,能夠直接注入 XXProperties 類的地方不需要使用這個工具類。

但是在 Spring 的接口和啓動流程設計中,有些情況下只能通過 EnvironmentAware 接口得到 Environment 對象,此時你想得到 XXProperties 類沒有更好的辦法。

也許有人直接從Environment 對象中遍歷獲取所有的配置信息,但是有一個無法完美解決的問題就是 relax 值,例如 first-namefirstNameFIRST_NAME 都可以代表同一個參數,在自己代碼中很難處理這種情況。

通用 Mapper 在兼容兩者過程中遇到過很多 BUG,這一次通過一個工具類解決了這個問題。

在 Spring Boot 1.x 中,可以通過下面代碼綁定參數到對象:

 


Spring Boot 2.x 中,綁定更簡單,如下:

 


上面這兩段代碼也是最近才找到,要不然這個功能會出現的更早。給大家推薦一個Java交流羣:874811168 進羣即可免費領取資料

由於上面的兩處代碼都在 spring-boot.jar 中,因此編譯時不能同時依賴兩個不同的版本,而且爲了方便以後項目依賴從 1.x 升級到 2.x,因此針對上面兩處代碼全部使用反射實現。

簡單用法如下:


至此通過 environment 就能得到想要的配置類了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章