java - 微服務(wù)架構(gòu)中類的設(shè)計(jì)以及restful返回json數(shù)據(jù)
問題描述
問題1: 在spring boot 實(shí)現(xiàn)的微服務(wù)架構(gòu)中,各個(gè)服務(wù)之間的數(shù)據(jù)交互問題 說明
比如在服務(wù)架構(gòu)中兩個(gè)服務(wù)之間的交互,服務(wù)A中有一個(gè)數(shù)據(jù)model,服務(wù)B調(diào)用后,服務(wù)A 將此類型的模型返回給服務(wù)B ,服務(wù)B中就必須也定義一個(gè)這樣的數(shù)據(jù)模型才能正確的接收數(shù)據(jù)這樣會(huì)造成類的多次定義?
問題2:在spring中使用restful返回客戶端數(shù)據(jù)時(shí),會(huì)進(jìn)行模型轉(zhuǎn)json操作,但是對(duì)象中定義了很多屬性,而客戶端只需要其中部分屬性對(duì)應(yīng)的值,那么如何在返回客戶端之前將其中不需要的或者無值的屬性剔除?
問題解答
回答1:答1:RPC通信的數(shù)據(jù)傳輸格式常用的有 json、xml 或 自定義的二進(jìn)制格式,一般都會(huì)事先約定好。既然都是不同的服務(wù),一般都是不同的團(tuán)隊(duì)來維護(hù)的。再說解析接收對(duì)象的類不一定要完全與輸出對(duì)象一致。
答2:一種做法是輸出對(duì)象定義必要屬性,將你的中間對(duì)象轉(zhuǎn)換成最終要輸出的對(duì)象,去除多余屬性?;蛘咴趯?duì)象轉(zhuǎn)json的時(shí)候剔除多余屬性,spring 中提供了 @JsonIgnore 注解,對(duì) bean 的多余屬性添加該注解后,轉(zhuǎn)換json對(duì)象時(shí),就會(huì)忽略該屬性。
回答2:Q1: bean可以定義在一個(gè)獨(dú)立的module中, 服務(wù)A和服務(wù)B都依賴這個(gè)module即可。
Q2: json注解忽略或者采用dto的方式,只獲取需要的屬性。
相關(guān)文章:
1. java - SSH框架中寫分頁時(shí)service層中不能注入分頁類2. docker-compose中volumes的問題3. boot2docker無法啟動(dòng)4. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.5. javascript - mock.js可以存儲(chǔ)數(shù)據(jù)嗎6. 如何使用git對(duì)word文檔進(jìn)行版本控制?7. docker網(wǎng)絡(luò)端口映射,沒有方便點(diǎn)的操作方法么?8. 求救一下,用新版的phpstudy,數(shù)據(jù)庫(kù)過段時(shí)間會(huì)消失是什么情況?9. nignx - docker內(nèi)nginx 80端口被占用10. java - Spring事務(wù)回滾問題

網(wǎng)公網(wǎng)安備