[英]Inject complex object into resource method in Jersey
我正在使用Java 8開發RESTful服務。我的資源類中具有以下方法,該方法可響應POST
請求。
@POST
public Response store(SomeType myInstance){ ... }
通常,在可以直接映射json
請求的情況下,可以輕松進行此序列化。 但是,在這種情況下, SomeType
是一個復雜的對象,其中包含持久保存在數據庫中的其他對象。
有沒有一種方法可以捕獲請求,弄清楚類型,構建對象SomeType
,然后將其傳遞給store
方法? 我傾向於某種類型的中間件,但是我不太確定依賴項將如何工作。
注意:出於安全原因,我在可以使用的第三方包裝中非常有限。 所以我不能使用開箱即用的解決方案。
我認為您的用例可以通過Jackson的CustomDeserializer功能解決。
SomeType
父類應具有CustomDeserializer 。 如果您需要從數據庫中獲取更多數據並填充SomeType1 , SomeType2和SomeType3的字段, 則可以在處理程序中通過檢查對象類型來做到這一點。
@POST public Response store(SomeType myInstance) { if (myInstance instanceof SomeType1) { // fetch from database and populate more fields } else if (myInstance instanceof SomeType2) { ... } ... }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.