【问题标题】:Where to place business logic in Spring Hibernate app?在 Spring Hibernate 应用程序中将业务逻辑放在哪里?
【发布时间】:2013-03-25 10:12:13
【问题描述】:

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

【问题讨论】:

    标签: spring hibernate business-logic


    【解决方案1】:

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

    `personService.createPersonWithRandomPassword();`
    

    【讨论】:

    • 这就是为什么现在将代码移到服务层的原因。谢谢。
    猜你喜欢
    • 2014-10-10
    • 1970-01-01
    • 2011-08-02
    • 2016-01-22
    • 2016-12-18
    • 2012-07-16
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多