在Spring Hibernate应用程序中放置业务逻辑的位置?

时间:2013-03-25 10:12:13

标签: spring hibernate business-logic

我有一个使用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来满足约束,以防止用户访问经过身份验证的页面。

1 个答案:

答案 0 :(得分:0)

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

`personService.createPersonWithRandomPassword();`