在服务层Java Spring MVC中编写哪些函数或者什么东西

时间:2011-02-22 13:42:35

标签: java spring spring-mvc

假设我有class USER属性。

在某些示例中,我看到为某些功能定义了UserService class

我很困惑应该在User Class中编写哪些内容或函数以及UserService中的哪些内容。

对于e,g如果我想写一些函数来验证数据库中的用户,如

validate(user,pass)

应该在哪里写下这些功能

如果我有class ShoppingProducts

我希望得到特定用户购买的所有产品,我应该在哪个类中编写我的意思product class or UserService or ProductService

2 个答案:

答案 0 :(得分:5)

这是领域模型与贫血模型的典型例子。

本次讨论中有很多理论,但我的一个实际建议是:

  • 将所有可以操作的方法放在User类的User属性 上。
  • 在服务中放置所有需要数据库访问,访问Web服务或其他层的方法。

See this我的相关文章。

答案 1 :(得分:0)

我不会进入域与贫血或SOA数据之间与行为分离的战斗。

我会说我认为服务是跨多个域(多个域对象)传播的行为,并处理数据传输对象(即不要将DTO放在域对象中)。

由于REST如此受欢迎,而且资源(REST以来)不是模型,您似乎总是需要DTO和服务类。

另一方面,使用AspectJ,Annotations和其他一些魔法你可以真正推动Domain Driven设计的优势,但我仍然认为你不应该引用域对象中的其他域对象。