java - 微服務架構中類的設計以及restful返回json數(shù)據(jù)
問題描述
問題1: 在spring boot 實現(xiàn)的微服務架構中,各個服務之間的數(shù)據(jù)交互問題 說明
比如在服務架構中兩個服務之間的交互,服務A中有一個數(shù)據(jù)model,服務B調用后,服務A 將此類型的模型返回給服務B ,服務B中就必須也定義一個這樣的數(shù)據(jù)模型才能正確的接收數(shù)據(jù)這樣會造成類的多次定義?
問題2:在spring中使用restful返回客戶端數(shù)據(jù)時,會進行模型轉json操作,但是對象中定義了很多屬性,而客戶端只需要其中部分屬性對應的值,那么如何在返回客戶端之前將其中不需要的或者無值的屬性剔除?
問題解答
回答1:答1:RPC通信的數(shù)據(jù)傳輸格式常用的有 json、xml 或 自定義的二進制格式,一般都會事先約定好。既然都是不同的服務,一般都是不同的團隊來維護的。再說解析接收對象的類不一定要完全與輸出對象一致。
答2:一種做法是輸出對象定義必要屬性,將你的中間對象轉換成最終要輸出的對象,去除多余屬性。或者在對象轉json的時候剔除多余屬性,spring 中提供了 @JsonIgnore 注解,對 bean 的多余屬性添加該注解后,轉換json對象時,就會忽略該屬性。
回答2:Q1: bean可以定義在一個獨立的module中, 服務A和服務B都依賴這個module即可。
Q2: json注解忽略或者采用dto的方式,只獲取需要的屬性。
相關文章:
1. javascript - 深夜被問題困擾求解惑,rn的API之PermissionsAndroidd的問題2. mysql - 我的myeclipse一直連顯示數(shù)據(jù)庫連接失敗,不知道為什么3. javascript - 最近用echarts做統(tǒng)計圖時遇到兩個問題!!4. docker綁定了nginx端口 外部訪問不到5. 前端 - html5 audio不能播放6. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?7. git - webstorm窗口中左側列表的文件名顏色怎么修改8. html - radio的使用時如何避免整個頁面只能選一個的情況9. mysqld無法關閉10. java - Activity 進入后臺再次傳值?

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