在項目中用到了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內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://www.cnblogs.com/xiao-ao-jiang-hu/p/15351963.html