從 @RestController 而不是 DTO 回傳 @Entity 時有什么陷阱嗎?像這樣:
@RestController
public class EmployeeRestController {
@Autowired
private EmployeeRepository repository;
@GetMapping("/rest/employee/get/{id}")
public Employee getEmployeeByID(@PathVariable("id") int id) {
return repository.retrieve(id);
}
@Entity
public class Employee {
...
uj5u.com熱心網友回復:
我會說是的。通過回傳一個物體,您將擁有回應合同和資料庫物體的緊密耦合。因此,將來如果您想修改您的回應/物體,您可能會遇到多個問題。例如,假設您的Employee物體有dateOfBirth欄位,但您的客戶希望您直接發送年齡。您將不得不修改Employee物體類并向其添加業務邏輯。因此,隨著合同要求的變化,您的物體也會發生變化,這可能會導致多個問題。理想情況下,您將回應/請求合同與資料庫物體分離。但當然,與往常一樣,這取決于您認為您的代碼會變得多復雜。
uj5u.com熱心網友回復:
是的,通過將物體直接耦合到控制器,它會導致我們稱之為緊密耦合的事情。大多數時候,您希望實作相反的(松散耦合),DTO 模式有助于實作這一點。緊耦合的壞處在于它本質上會導致一個類的變化同時改變另一個類。
有關耦合的更多資訊,請查看此問題的答案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/515166.html
