使用 REST 将对象从 spring boot 传输到 angular 的最佳实践是什么

What's the best practice to transfer object with REST from spring boot to angular

提问人:amdev 提问时间:10/23/2015 最后编辑:Nekvinamdev 更新时间:7/2/2020 访问量:2821

问:

考虑使用以下方法的应用程序:

  • 服务器端的 Spring Boot(带有休眠、DAO 模式和 Oracle 数据库)
  • 客户端的 AngularJS
  • REST API 通信 ( Spring REST )

传输数据的最常见方法是什么?在我之前的项目中,我使用了 DTO(带推土机),但它增加了一百个类,浪费了开发时间,所以我决定寻找一个好的替代方案。

我听说过杰克逊?

手动创建 JSON?

使我的实体可序列化并直接发送它们?

2018 年更新

2 年后,我仍然在我所有的项目中使用 dto 类和 jackson 一起序列化为 json,使用 spring 数据不是这里的重点,返回一个作为 DB 对象的实体不是一个好的做法,您可以在实体的某些属性上使用@JsonIgnore,但它不是很灵活。您可以使用您想要的映射器或手工制作的映射器,在伟大的JHipster项目中使用的MapStruct似乎是一个不错的映射器。

angularjs rest spring-boot 客户端

评论


答:

2赞 Christos Baziotis 10/23/2015 #1

您应该查看带有 Spring Data REST 的 Spring Data JPA。我将它与 angular 一起使用,将您的业务模型公开为 Restful Endpoints 非常容易。您可以将 Hibernate 用作 JPA 提供程序。使用Spring Boot,您可以轻松地创建一个项目,将所有这些放在一起,因此您无需执行任何操作。它可以为您节省大量时间。

过程是这样的:

  1. 创建实体(模型)
  2. 创建 JpaRepository

到此为止,你就拥有了它。生成 Restful 端点。

在前端,我使用 Restangular。 此外,在许多情况下,您可以避免 DTO 并使用摘录和投影

阅读本指南:使用 REST 访问 JPA 数据

评论

0赞 mikezang 2/6/2016
你使用 Thymeleaf 和 BootStrap 吗?我想将它们与 AngularJS 结合起来,这是否可能和必要?
1赞 amdev 2/27/2018
2 年后,我仍然在我所有的项目中使用 jackson 序列化的 DTO 类,使用 spring 数据不是这里的重点,返回一个作为 DB 对象的实体不是一个好的做法,您可以在实体的某些属性上使用 @JsonIgnore,但它不是很灵活。