gpt4 book ai didi

java - 缺少 linkTo 和 methodOn 声明 Spring HATEOAS STS

转载 作者:行者123 更新时间:2023-12-01 19:36:45 26 4
gpt4 key购买 nike

我正在关注 Spring RESTfull API 教程。本教程要求在某个时候使用 Spring HATEOAS。但是,我的 IDE STS 找不到方法 linkTo 和 methodOn 的引用

@GetMapping("/employees/{id}")
Resource<Employee> one(@PathVariable Long id) {
Employee emp = repository.findById(id)
.orElseThrow(() -> new EmployeeNotFoundException(id));

return new Resource<>(emp,
linkTo(methodOn(EmployeeController.class).one(id)).withSelfRel(),
linkTo(methodOn(EmployeeController.class).all()).withRel("employees")
);
}

Spring HATEOAS 依赖项也在这里:

    <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-hateoas</artifactId>
</dependency>

我尝试过的事情:

  • 更新 Maven 项目

最佳答案

我正在遵循相同的教程,并在使用方法“linkTo”和“methodOn”时遇到了同样的问题。

看起来导入应该来自:

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

但是,它似乎已被弃用,现在建议使用 WebMvcLinkBuilder:

import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*;

我在这个类中发现了线索: https://github.com/spring-projects/spring-hateoas-examples/blob/master/simplified/src/main/java/org/springframework/hateoas/examples/EmployeeController.java

此外,在教程页面的底部有一个完整项目的 GitHub 存储库的链接: https://github.com/spring-guides/tut-rest

按照教程操作时,我还发现运行“LoadDatabase.java”时出现问题。为了解决这个问题,我必须让它实现 CommandLineRunner 并将原始代码放入它的 run 方法中:

@Component
public class LoadDatabase implements CommandLineRunner {

private static final Logger log = LoggerFactory.getLogger(LoadDatabase.class);

@Override
public void run(String... args) throws Exception {

employeeRepository.save(new Employee("Bilbo", "Baggins", "burglar"));
employeeRepository.save(new Employee("Frodo", "Baggins", "thief"));

employeeRepository.findAll().forEach(employee -> log.info("Preloaded " + employee));

orderRepository.save(new Order("MacBook Pro", Status.COMPLETED));
orderRepository.save(new Order("iPhone", Status.IN_PROGRESS));

orderRepository.findAll().forEach(order -> {
log.info("Preloaded " + order);
});
}

@Autowired
EmployeeRepository employeeRepository;
@Autowired
OrderRepository orderRepository;
}

关于java - 缺少 linkTo 和 methodOn 声明 Spring HATEOAS STS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57165849/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com