Spring:DTO和服务层

时间:2013-08-28 13:53:48

标签: spring service dao layer dto

我正在使用当前的图层拓扑:

1)dao 2)服务 3)控制器(演示)

在我的一个控制器中,我收到了以下电话(来自客户):

public PlayerStatisticsDTO getPlayerStatistics(int playerId);

控制器现在应该将调用委托给服务层。

问题是,如果我创建一个方法,如:

public PlayerStatisticsDTO getPlayerStatistics(int playerId);

在我的服务中我实际上是让我的服务层知道DTO对象!

我认为这是一种不好的做法(或不是?)

所以我提出的另一个选择是创建一个新类:

public class PlayerStatistics {...}

然后在我的控制器中调用:

 PlayerStatistics stats = this.service.getPlayerStatistics(playerID);
 return toDTO(stats);

这个解决方案的问题在于我在我的项目中根本不使用这个类,所以它似乎是一个不必要的重复代码

1 个答案:

答案 0 :(得分:0)

如果请求和呈现的数据之间存在一对一的映射,则在表示层中使用DTO对象并不是一种不好的做法。 如果要在以后更改表示层,则可以创建包含表示属性的新POJO并将其映射到服务层。