Не удается импортировать элементы HATEOAS в проекте Spring Boot Gradle - PullRequest
0 голосов
/ 06 марта 2020

Я не могу импортировать какие-либо элементы HATEOAS, хотя, похоже, это правильно реализовано в моем build.gradle:

implementation 'org.springframework.boot:spring-boot-starter-hateoas'

А вот мой импорт:

import org.springframework.hateoas.Resource;
import org.springframework.hateoas.Resources;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import static org.springframework.hateoas.mvc.ControllerLinkBuilder.*;

И Вот ошибки:

$ ./gradlew build

> Task :compileJava FAILED
path\src\main\java\payroll\EmployeeController.java:5: error: cannot find symbol
import org.springframework.hateoas.Resource;
                                  ^
  symbol:   class Resource
  location: package org.springframework.hateoas
path\src\main\java\payroll\EmployeeController.java:6: error: cannot find symbol
import org.springframework.hateoas.Resources;
                                  ^
  symbol:   class Resources
  location: package org.springframework.hateoas
path\src\main\java\payroll\EmployeeController.java:15: error: package org.springframework.hateoas.mvc does not exist
import static org.springframework.hateoas.mvc.ControllerLinkBuilder.*;
                                             ^
path\src\main\java\payroll\EmployeeController.java:41: error: cannot find symbol
  Resource<Employee> one(@PathVariable Long id) {
  ^
  symbol:   class Resource
  location: class EmployeeController
4 errors

Я не думаю, что это актуально, но я использую IntelliJ и пытаюсь проработать этот урок: https://spring.io/guides/tutorials/bookmarks/

Я не мог найти решения, когда гуглил проблему, и я действительно не понимаю, в чем проблема, поэтому я не знаю, что еще попробовать.

1 Ответ

0 голосов
/ 09 марта 2020

Изучив немного больше, я понял, что урок spring.io устарел. Немного поигравшись, IntelliJ начал показывать org.springframework.hateoas, но импорт, предоставленный в учебном пособии, все еще не работал.

В конце концов я нашел ссылку на исходный код, и код был обновлен в то время как учебник не имеет.

https://github.com/spring-guides/tut-rest/tree/master/rest/src/main/java/payroll

По существу, ресурс был заменен EntityModel, ресурсы заменены на CollectionModel, а структура импорта изменилось.

После обновления моего кода в соответствии с исходным кодом я получил ожидаемый ответ, когда отправил запрос GET для сотрудника:

{"id":1,"name":"Bilbo Baggins","role":"burglar","_links":{"self":{"href":"http://localhost:8080/employees/1"},"employees":{"href":"http://localhost:8080/employees"}}}
...