使用SpringFramework Hateoas的坑及經驗
目前跟著Spring.io上的教學試著Create一個REST Application,但實作去到使用Hateoas時發現不能Resolve linkTo和MethodOn這兩個Method。(不知道是否只有我遇到了這一個問題)
於是查找pom.xml看看是否還未有增加上有關的Dependency,但發現相關的Dependency已加上。
<!-- https://mvnrepository.com/artifact/org.springframework.hateoas/spring-hateoas -->
<dependency>
<groupId>org.springframework.hateoas</groupId>
<artifactId>spring-hateoas</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>org.springframework.hateoas</groupId>
<artifactId>spring-hateoas</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-hateoas</artifactId>
</dependency>
於是到官方文件查找,發現ControllerLinkBuilder的Class已經在新的版本被Deprecated及建議使用WebMvcLinkBuilder.
於是便在程式上加上 import org.springframework.hateoas.server.mvc.WebMvcLinkBuilder;
,當以為這樣便可解決時又發現linkTo和methodOn還是undefined的狀態。
最後將linkTo和methodOn的前方加上WebMvcLinkBuilder.linkTo及WebMvcLinkBuilder.methodOn才可使用。(這一點比較奇怪,還需查看為什麼不能直接引用。)