2013-03-25 57 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

相关问题