我對 Spring 中的 Controller 使用有一些問題。
最好,我想保持控制器方法很小,并簡單地使用它們來呼叫服務函式,如下所示:
@Controller
class controllerClass {
@RequestMapping("/foo/")
public void foo(Model model) {
Data returnedData = fooServiceFunction();
model.addAttribute("data", returnedData);
}
}
@Service
class serviceClass {
fooServiceFunction() {
Data data = methodCall();
methodCall2();
methodCall3();
return data;
}
}
然而,在實踐中我發現這個實作很困難,因為我發現自己需要檢查從 fooServiceFunction() 中呼叫的方法是成功還是失敗。我一直在從這些函式回傳一個自定義的“狀態”類,該類被傳遞給控制器??,以指示方法是否已成功執行和/或是否發生了任何錯誤(驗證錯誤等)。
現在,如果我不需要回傳任何資料,這很好。但是如果我想從服務函式回傳資料并將其傳遞給控制器??,這意味著我需要為每個控制器方法創建一個自定義類,其中包含:
a) the data.
b) the success status
這似乎不合理。
我考慮過只拋出例外來表示失敗,但這似乎不合適。
有沒有更好的辦法?處理這些情況的最佳方法是什么?還是我應該只撰寫實作更多應用程式/業務邏輯的胖控制器方法?
謝謝你。
uj5u.com熱心網友回復:
我認為最好的方法是拋出一個自定義例外,然后使用一個帶有注釋的類
@ControllerAdvice
處理該例外并使其回傳根據您的需要定制的 ResponseEntity。這條線
回傳資料;
只有在沒有例外的情況下才會發生
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/442958.html
