使用SpringFramework Hateoas的坑

使用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才可使用。(這一點比較奇怪,還需查看為什麼不能直接引用。)