Spring HATEOAS

将Spring实战第5版中Spring HATEOAS部分代码迁移到Spring HATEOAS 1.0

梦想与她 提交于 2020-05-08 10:56:55
最近在阅读Spring实战第五版中文版,书中第6章关于Spring HATEOAS部分代码使用的是Spring HATEOAS 0.25的版本,而最新的Spring HATEOAS 1.0对旧版的API做了升级,导致在使用新版Spring Boot(截至文章发布日最新的Spring Boot版本为2.2.4)加载的Spring HATEOAS 1.0.3无法正常运行书中代码,所以我决定在此对书中的代码进行迁移升级。 在线阅读书中这一部分: https://potoyang.gitbook.io/spring-in-action-v5/di-6-zhang-chuang-jian-rest-fu-wu/6.2-qi-yong-chao-mei-ti Spring HATEOAS 1.0 版本的变化 封装结构的最大变化是通过引入超媒体类型注册API来实现的,以支持Spring HATEOAS中的其他媒体类型。 这导致客户端API和服务器API(分别命名的包)以及包中的媒体类型实现的明确分离 mediatype 。 最大的变化就是将原来的资源表示为模型,具体变化如下。 在 ResourceSupport / Resource / Resources / PagedResources 组类从来没有真正感受到适当命名。 毕竟,这些类型实际上并不表示资源,而是表示模型

Spring Data REST不完全指南(三)

六月ゝ 毕业季﹏ 提交于 2020-04-24 13:32:19
上一篇我们介绍了使用Spring Data REST时的一些高级特性,以及使用代码演示了如何使用这些高级的特性。本文将继续讲解前面我们列出来的七个高级特性中的后四个。至此,这些特性能满足我们大部分的接口开发场景。 需要满足的一些要求: 1.针对字段级别,方法级别,类级别进行限制(禁止某些字段,方法,接口的对外映射)。 2.对数据增删改查的限制(禁止某些请求方法的访问)。 3.能个性化定义请求的路径。 4.对所传参数进行值校验。 5.响应统一处理。 6.异常处理。 7.数据处理的切面。 ➡️ 本文,将演示7个要求中的其余四个要求。 对所传参数进行值校验 对于值校验,Spring 提供了Validator接口,Spring Data REST提供了使用Validator来进行值校验的功能。 首先 我们通过实现Validator接口来创建一个校验器, 然后 在实现RepositoryRestConfigurer或Spring Data REST的RepositoryRestConfigurerAdapter的子类的配置中,重写configureValidatingRepositoryEventListener方法,并在ValidatingRepositoryEventListener上调用addValidator,传递要触发此校验器的事件和校验器的实例。以下示例显示了如何执行此操作:

java – 混合Spring MVC Spring数据休息导致奇怪的MVC响应

前提是你 提交于 2019-12-03 02:59:30
我有两个JPA实体,一个具有SDR导出的存储库,另一个具有Spring MVC控制器和一个未导出的存储库. MVC暴露实体引用了SDR管理实体.参见下面的代码参考. 从UserController检索用户时,问题出现. SDR管理实体不会序列化,似乎Spring可能正在尝试在响应中使用HATEOAS参考. 以下是完全填充用户的GET如下所示: { "username": "foo@gmail.com", "enabled": true, "roles": [ { "role": "ROLE_USER", "content": [], "links": [] // why the content and links? } // no places? ] } 如何使用嵌入式SDR管理实体清楚地从Controller中返回User实体? Spring MVC管理 实体 @Entity @Table(name = "users") public class User implements Serializable { // UID @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @JsonIgnore private Long id; @Column(unique = true) @NotNull private String