Spring:DTO和服务层

Spring:DTO和服务层,spring,service,dao,layer,dto,Spring,Service,Dao,Layer,Dto,我正在使用当前图层拓扑: 1刀 2服务 3.控制员介绍 在我的一个控制器中,我收到来自客户端的以下呼叫: public PlayerStatisticsDTO getPlayerStatistics(int playerId); 控制器现在应该将调用委托给服务层 问题是,如果我创建一个如下方法: public PlayerStatisticsDTO getPlayerStatistics(int playerId); 在我的服务中,我实际上让我的服务层意识到DTO对象 我相信这是一种不好的做

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

1刀 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);

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

如果请求的数据和正在呈现的数据之间存在一对一的映射,那么在呈现层中使用DTO对象并不是一个坏做法。
如果您想在以后的阶段更改表示层,那么您可以创建一个包含表示属性的新POJO,并将它们映射到服务层

我不明白你的问题是什么?我不想让我的服务层熟悉我的DTO类你想直接访问你的控制器,是吗?你想用什么方法来调制?