1

我有一个使用 Spring 和 Hibernate 框架编写的应用程序。一切正常,但我确实有一个问题:如果控制器通过调用服务层方法来调用业务逻辑,那么某些代码应该去哪里,例如在下面的代码中,用于设置新人员角色和密码的代码是否应该在控制器方法中处理 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 的约束,以防止用户到达经过身份验证的页面。

4

1 回答 1

0

它应该在服务层。控制器层用于处理和翻译 GUI 内容。但是创建用户并正确配置它不是 GUI 的东西,它是一个业务(或技术)用例,因此应该将它放在服务中。

`personService.createPersonWithRandomPassword();`
于 2013-03-25T10:23:57.290 回答