關于BeanUtils.copyProperties() 方法的問題
BeanUtils.copyProperties(obj1,obj2)這個方法難道不是將obj2的值賦給obj1嗎,而老師說最開始加載resource的時候屬性值就會一一對應賦值,而Resource bean = new Resource()中的bean是new出來,應該沒有值,按照老師代碼中的順序BeanUtils.copyProperties(resource,bean)這不是把bean的值賦給resource嗎,那bean中依舊是沒有值的哇?沒明白這個問題。
2018-11-21
這個我看視頻的時候也想到了,然后測試了一下,直接讓return resource;的話會出現錯誤的,不會正確顯示的。你把它toString輸出一下,可以看到自動裝配后的resource是一個完整類名加后面一串類似這樣的東西“$$EnhancerBySpringCGLIB$$9a1fe978@5eef9e0”,這說明它是spring給你生成的一個原來類的動態代理。這個動態代理是不能通過json顯示出來的。
2018-08-22
這個自己測試下就知道了。第一次通過資源文件映射的bean不是標準的Resource類的,帶有其他的屬性,這時候直接返回的話jackson無法轉換,會報錯。所以我們可以看到通過BeanUtils.copyProperties來獲取標準的Resource類的bean,這時候就可以進行json轉換了。
2018-08-12
resource是交給Spring創建的單實例對象,在項目啟動時Spring就會按照注解配置給該對象賦值。而new出來的bean對象,雖然與resource使用的同樣的class對象,但卻是不同的加載方式,不會有初始值。
2018-07-21
你可能有些問題沒想明白,我簡單說下問題的關鍵。
首先,老師是創建了資源配置文件,并設置了幾個屬性值,如下圖:
然后在Resource類中通過注解的方式為每個成員變量都讀取設置了上面資源配置文件里的屬性值,如下圖:
這樣簡單來說,Resource類中定義的成員變量其實都是有值的,效果如下圖:
認真對比上面兩張圖,應該明白了吧,在你new出Resource對象時,其實該對象的每個屬性都是有值的。上面的我個人的淺顯理解,可能敘述不太準確,目前,我也在積極學習中,正好看到你的問題,希望可以幫到你,。