Spring Boot 中 DTO 的替代方案,以简化项目结构和数据处理

问题描述 投票:0回答:0

StackOverflow 社区,

我目前正在从事一个使用 Spring Boot 构建 API 的项目。由于项目需要,我一直在为每个实体使用多个DTO(Data Transfer Objects)来根据端点处理不同字段和关系的返回。

这导致文件很多,项目结构复杂,正在想办法简化。我读过不同的技术,例如 Spring Data JPA Projections、映射库(如 ModelMapper 或 MapStruct)以及面向方面的实体映射方法。

我想知道是否有人对这些方法(或其他我没有提到的方法)有经验,如果你能分享你的经验和建议——在可读性、可维护性方面是否有“更好”或更有效的方法和性能,比其他人解决这个问题?

任何意见或建议将不胜感激。

提前致谢。

西班牙文原文: 你好,StackOverflow 社区,

Actualmente, estoy trabajando en un proyecto utilizando Spring Boot para construir una API。 Debido a las necesidades del proyecto,他使用多个 DTO(数据传输对象)para cada entidad para manejar la devolución de diferentes campos y relaciones según el endpoint.

Esto está resultando en un gran número de archivos y complejidad en la estructura del proyecto,y estoy buscando formas de simplificarlo。他了解不同的技术,例如 Spring Data JPA 的 Proyecciones,以及 ModelMapper 和 MapStruct 的地图图书馆,以及 enfoques orientados para el mapeo de entidades。

Me gustaría saber si alguien tiene experiencia con estos enfoques (o con otros que no he mencionado),y si podrían compartir sus experiencias y recomendaciones。 ¿Existe un enfoque "mejor" o más efectivo, en terminos de legibilidad, mantenimiento y rendimiento, que otros para este problema?

Cualquier consejo o recomendación será muy apreciado.

Gracias de antemano.

我曾尝试为项目中的每个实体使用不同的数据传输对象 (DTO)。每个 DTO 都包含符合我的 API 不同端点的特定要求的实体字段的变体。

我希望这个解决方案能让我轻松处理 API 所需的数据的不同表示,并将域模型实体和通过网络发送的数据分开。

但是,我发现这种方法导致我的项目中的类数量大幅增加,因为我需要为我可能需要的数据的每个变体使用不同的 DTO。这使得项目更难维护,也使项目的整体结构变得复杂。

我正在寻找替代方案,使我能够保持为我的 API 表示不同数据集的灵活性,同时简化我的项目结构,使其更易于维护和理解。

西班牙文原文: 他打算在项目中使用不同的数据传输对象 (DTO)。 Cada DTO contiene una variación de los campos de la entidad que se ajusta los requisitos específicos de los diferentes endpoints de mi API.

Esperaba que esta solución me permitiera manejar fácilmente las diferentes representaciones de los datos requeridos por la API y mantener separadas las entidades del modelo de dominio y los datos enviados a través de la red.

Sin embargo, me he encontrado con que este enfoque ha llevado a un gran crecimiento en el número de clases en mi proyecto, ya que necesito un DTO diferente para cada variación de los datos que podría necesitar。 Esto ha hecho que el proyecto sea más difícil de mantener y ha complicado la estructura general del proyecto.

Estoy buscando alternativas que me permitan mantener la flexibilidad de representar diferentes conjuntos de datos para mi API, pero que al mismo tiempo simplifiquen la estructura de mi proyecto y hagan que sea más fácil de mantener y entender.

java spring jpa dto boot
© www.soinside.com 2019 - 2024. All rights reserved.