Udemy 課程Microservices with Spring 18

針對Java Bean回傳值的屬性忽略

ZONGRU Li
4 min readJun 24, 2019

部分API會直接將回傳值定為Java Bean

但是部分Java Bean內的屬性是有機密性..等問題

希望能省略回傳該屬性結果

尤其是一個Java Bean可能20個屬性

但是想省略其中一個屬性,剩的19個當回傳值

總不能又建一個類似的Java Bean就為了做這件事

EX:

如果上圖我們想省略生日,只回傳id與name?

現在新增幾支程式

基本上API已可運作

今天打算忽略filed3有兩種寫法

其1 →JsonIgnore標籤在屬性上

在屬性上加JsonIgnore annotation

其2-->在類別上標籤JsonIgnoreProperties,並指定要省略的值(屬性)

以上概念其實用到靜態(static)filter

之後會再提到

現在有個問題

假設多支Web Service API

有些就是要回傳完整Java Bean,有的則不怎麼辦?

這時就需要用到動態過濾(dynamic filtering)

先將前面的JsonIgnore注解
原本的retrieveSomeBean Method
改回傳Json值對應器

注意我們有額外取了一個名子:SomeBeanFilter

所以必須在對應的Bean上加上這個名子

執行RestfulWebServicesApplication

記得此時跑未修改的list會報錯

原本的list Method:

改為:

一樣重新執行得到以下結果:

單一Bean留屬性1&2
list留了屬性2&3

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet