我有一个使用Spring和Hibernate框架编写的应用程序。一切正常但我确实有一个问题:如果控制器通过调用服务层方法来调用业务逻辑,那么某些代码应该去哪里,例如在下面的代码中,设置新Person的角色和密码的代码是否应该在处理AddPerson页面的POST请求的控制器方法中,或者在服务层方法中?
// 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 :(得分:0)
它应该在服务层中。 Controller层用于处理和翻译GUI内容。但是创建用户并将其配置正确不是GUI的东西,它是业务(或技术)用例,因此应该将其放在服务中。
`personService.createPersonWithRandomPassword();`