2013-03-25 104 views
1

我有一個使用Spring和Hibernate框架編寫的應用程序。一切工作正常,但我確實有一個問題:如果控制器通過調用服務層方法來調用業務邏輯,那麼某些代碼應該去哪裏,例如在下面的代碼中,用於設置新的人員角色和密碼的代碼應該在處理AddPerson頁面的POST請求的控制器方法中還是在服務層方法中?何處在Spring Hibernate應用程序中放置業務邏輯?

// Saves addPerson.jsp. 
@RequestMapping(value = "/add", method = RequestMethod.POST) 
public String postAdd(@ModelAttribute("person") Person person) { 
     logger.debug("PersonController.postAdd called"); 

     // Create random number for new Person's password. 
     person.setPassword(String.valueOf(Java_Utils.getRandomNumber())); 

     // Create role for new Person. 
     person.setRole("PERSON"); 

     // Add Person. 
     personService.add(person); 

     // Set records.jsp 
     return "redirect:/demo/main/record/list"; 
} 

這當然只是一個簡單的例子,但我很好奇。 PERSON的角色是使用Tomcat來阻止用戶訪問經過驗證的頁面,以滿足約束。

回答

0

它應該在服務層。 Controller層用於處理和翻譯GUI內容。但是,創建用戶並將其配置正確不是GUI,而是業務(或技術)用例,因此應將其放入服務中。

`personService.createPersonWithRandomPassword();` 
+0

這就是爲什麼代碼現在已被移入服務層。謝謝。 – 2013-03-25 10:29:12

相關問題