我目前正在Spring Boot中编写一个项目。我想知道登录方法。在前端,我想向所有用户显示一些详细的数据,例如他们参与的项目等。由于我不想向前端发送密码和一些私有数据,所以我找到了两种解决方案:
哪种方法更合适?
我认为使用DTO的第一种方法更好,我自己也使用它,因为使用DTO可以仅有效地传输所需的数据。
您可以轻松创建更多的DTO来覆盖用户属性的其他组合-例如,用于在用户列表中显示用户信息的DTO(可能只需要name
和e-mail
)。
在Spring docs中,他们使用PersonForm
DTO(他们称为表单支持对象)来验证用户注册。
因此,DTO可以涵盖同一实体的各种业务案例(注册,显示个人资料,显示实体列表等。
另一方面,如果您为用户使用两个单独的数据库表,则会给程序增加不必要的复杂性(例如,进行更改时,您需要在两个位置保存/更新/删除信息)。
此外,如果您想开始添加新的方式来显示用户数据,则最终将以任何一种方式使用DTO(或为每种情况创建一个单独的数据库表,这将导致大量重复数据。