解析MapStruct轉換javaBean時出現的詭異事件
在項目中用到瞭MapStruct,對其可以轉換JavaBean特別好奇,因為之前都是使用Vo的方式手動set轉換,但是接觸到MapStruct後感覺以前使用Vo的方式確實有點low
於是就想著去看一下,寫瞭個demo。於是這詭異的時間就開始瞭
我得代碼如下:
這是pom文件
這是我的兩個javaBean
大傢可以看到那個發灰的序列化接口,那是因為我再運行出結果是轉換後的JavaBean屬性為空,我以為是序列化時導致的所以我去掉瞭,
可是後來發現完全不是這個原因
這是我的mapper轉換類
還有我的啟動執行類
正確的運行結果應該是這樣的
現在我的運行結果是
這讓我挺懵X的,於是我查瞭好多大佬的博客,都說在pom中添加 “maven-compiler-plugin” 的配置就可以解決於是我配置瞭
如下:
那灰色的是看到有的大佬說的這麼配置,之前我的maven-compiler-plugin是3.8版本的,跟著大佬的隻是做成瞭現在的樣子,但是好像還是沒什麼用,
運行之後屬性就是空的,我嘗試maven-clean和maven-instell在我大量的嘗試中我突然發現在install之後修改那個轉換的方法名之後就可以轉換成功,屬性也有瞭值,
我通過debug方式去看瞭執行過程中,在我沒有改方法名之前mapper的實現類中沒有生成set方法,但是我改瞭之後就會生成set方法,這也是導致屬性為null的直接原因。
我嘗試瞭好多的方法,看瞭好多的資料也沒想明白,為什麼會出現這樣的問題,苦惱》》》啊!!
我就是在打包後改瞭這個方法
隻要改動一下這個構造方法就可以實現。。
求大佬解惑,什麼原因啊
到此這篇關於MapStruct轉換javaBean時出現的詭異事件的文章就介紹到這瞭,更多相關MapStruct轉換javaBean內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Maven實現項目構建工具
- 解決maven打包失敗:程序包xxxx不存在問題
- Java基礎之簡單介紹一下Maven
- 如何修改maven默認的JDK版本
- idea導入springboot項目沒有maven的解決