스프링 부트 튜토리얼을 따라하다가 보면 낮은 버전의 HATEOAS를 사용해서 몇몇 메소드가 없어지거나 변경되는 경우가 있습니다.
https://spring.io/guides/tutorials/bookmarks/
Building REST services with Spring
this tutorial is designed to be completed in 2-3 hours, it provides deeper, in-context explorations of enterprise application development topics, leaving you ready to implement real-world solutions.
spring.io
일단 전문을 살펴 보겠습니다.
package payroll;
import static org.springframework.hateoas.mvc.ControllerLinkBuilder.*;
import org.springframework.hateoas.Resource;
import org.springframework.hateoas.ResourceAssembler;
import org.springframework.stereotype.Component;
@Component
class EmployeeResourceAssembler implements ResourceAssembler<Employee, Resource<Employee>> {
@Override
public Resource<Employee> toResource(Employee employee) {
return new Resource<>(employee,
linkTo(methodOn(EmployeeController.class).one(employee.getId())).withSelfRel(),
linkTo(methodOn(EmployeeController.class).all()).withRel("employees"));
}
}
첫 번째
첫 번째로 linkTo, methodOn의 메소드의 경우에는 옛날 버전에서는 ControllerLinkBuilder안에 포함되었지만 지금은 WebMvcLinkBuilder 안에 존재합니다.
- import static org.springframework.hateoas.mvc.ControllerLinkBuilder.*; 를
- import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; 로 변경
두 번째
두 번째는 Resource, ResourceAssembler 입니다.두가지의 경우에는 전에 포스트한 내용이 있습니다.
ResourceSupport / Resource / Resources / PagedResources/ ResourceAssembler 등 많은 메소드의 변경사항들을 적어뒀습니다.
https://imspear.tistory.com/81
Spring Boot HATEOAS) RESOURCE, RESOUCES 변경
Spring Boot HATEOAS 표현 모델 ResourceSupport / Resource / Resources / PagedResources 클래스 그룹은 실제로 적절하게 명명 된 것으로 느껴지지 않았습니다. 결국, 이러한 유형은 실제로 자원을 나타내는 것..
imspear.tistory.com
- import org.springframework.hateoas.Resource; 를
- import org.springframework.hateoas.EntityModel; 로 변경
- import org.springframework.hateoas.ResourceAssembler; 를
- import org.springframework.hateoas.server.RepresentationModelAssembler; 로 변경
다 변경하면 이렇게 되겠네요.
package payroll;
import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*;
import org.springframework.hateoas.EntityModel;
import org.springframework.hateoas.server.RepresentationModelAssembler;
import org.springframework.stereotype.Component;
@Component
class EmployeeResourceAssembler implements RepresentationModelAssembler<Employee, EntityModel<Employee>> {
@Override
public EntityModel<Employee> toResource(Employee employee) {
return new EntityModel<>(employee,
linkTo(methodOn(EmployeeController.class).one(employee.getId())).withSelfRel(),
linkTo(methodOn(EmployeeController.class).all()).withRel("employees"));
}
}
마지막으로는...
여기 공식 문서에서 변경사항을 직접 확인할 수 있습니다.
https://docs.spring.io/spring-hateoas/docs/current/reference/html/
Spring HATEOAS - Reference Documentation
Example 49. Configuring WebTestClient when using Spring Boot @SpringBootTest @AutoConfigureWebTestClient (1) class WebClientBasedTests { @Test void exampleTest(@Autowired WebTestClient.Builder builder, @Autowired HypermediaWebTestClientConfigurer configure
docs.spring.io
'JAVA_SPRING > SPRING BOOT' 카테고리의 다른 글
SPRING BOOT)스프링 부트를 이용한 간단한 게시글 페이지 설계 - 1 (0) | 2020.11.07 |
---|---|
java sprint boot)resource.getId() -> entitymodel.getLink("self") (0) | 2020.07.09 |
Spring Boot HATEOAS) RESOURCE, RESOUCES 사용하는 방법/ 변경하는 방법 (0) | 2020.07.08 |
스프링 부트 JPA를 이용한 데이터 액세스(h2-console을 이용해 데이터 확인하기) (0) | 2020.07.07 |
Spring Boot) STS4 설치/다운로드 (Spring Tool Suites4) (0) | 2020.05.27 |