在使用spring mvc的情況下,
你們傳給前端(ios/android)的json資料由spring對(duì)Bean進(jìn)行轉(zhuǎn)換的吧?
那個(gè)這個(gè)Bean,都是定義好的java類別?
因?yàn)楦杏X前端需要的json非常靈活,後臺(tái)如果用幾個(gè)大而全的bean來封裝,前端會(huì)得到許多無用的字段。
(雖然可以控制序列化策略,讓null值甚至是預(yù)設(shè)值的欄位不出現(xiàn)在json中,但這樣一來,欄位不全,閱讀性差些。)
而如果精細(xì)化bean,則需要?jiǎng)?chuàng)建太多的bean。
我們專案中基本上採用map來建構(gòu)需要的資料(主要也是因?yàn)橛玫膉dbctemplate,查詢出來的資料就是map類型的),不用定義bean類,雖然很靈活,但常常要手寫key名,也是麻煩所在。
大家怎麼解決的?請(qǐng)不吝指教,謝謝!
認(rèn)證高級(jí)PHP講師
直接使用Spring WebMVC 的Controller 上面,增加 @ResponseBody 返回POJO
以前也是採用Map的方式進(jìn)行組合數(shù)據(jù),但是手寫Key名確實(shí)很麻煩,而且很容易出錯(cuò),這就是所謂的魔術(shù)值,應(yīng)該盡量避免的。後來都改用小而美的bean,每個(gè)接口對(duì)應(yīng)一個(gè)bean,雖然數(shù)量比較多??,但是耦合性比建立大而全的bean更鬆散,修改bean不會(huì)影響其他接口,還是可以接受的,不知道有沒有其他更優(yōu)雅的方案。