Spring hateoas 将 _links 呈现为 link

Spring hateoas renders _links as link

所以,首先,如果这在细节上有点不清晰,我深表歉意,但我已经为这个问题烦恼了一整天,而且无法在这个项目之外重现这个问题没有运气,真的希望社区至少可以提供一个指向从哪里开始调试过程的指针。

基本上,我正在将一个项目从非常旧的 (1.28) 版本的 Spring 引导更新到当前的 2.04,除了某些原因外一切似乎都正常,Spring-hateoas似乎没有正确呈现链接。我设置了一个非常简单的控制器方法

@RestController
@RequestMapping("/hello")
public class HateoasTestController {

public static class Greeting extends ResourceSupport{
    private final String name;

    public Greeting(String name) {
        this.name = name;
           add(linkTo(ControllerLinkBuilder.methodOn(HateoasTestController.class).greet(name)).withSelfRel());
    }

    public String getName() {
        return name;
    }

}
@RequestMapping(value="/{name}" ,method=RequestMethod.GET)
public Greeting greet(@PathVariable("name")String name){
    return new Greeting(name);
  }
}

呈现为

{"name":"peter","link":{"self":[{"href":"http://localhost:6789/hello"}]}}

在旧版本的服务中,它将呈现为

{"name":"peter","_links":{"self":[{"href":"http://localhost:6789/hello"}]}}

因此,由于某种原因,响应似乎没有序列化为 HAL。 我试图遵循 Jackson2Hal 模块的代码流,它确实被触发了,但很难弄清楚魔术应该发生在哪里。所以我想,我最基本的问题是,如果有一个明显的地方可以放置断点,测试为什么结果没有按预期呈现?当然,如果有什么愚蠢的东西,我错过了或者我可以提供的更多相关细节。基本上,欢迎此时的任何帮助

我是个白痴。原来我在 jacksonobjectmapper 构建器中启用了 findModulesViaServiceLoader(true),由于某种原因导致它失败。