gpt4 book ai didi

java - 如何在单独的 Java 类上使用 Spring Boot Rest Controller 来查询数据库?

转载 作者:太空宇宙 更新时间:2023-11-03 11:40:53 25 4
gpt4 key购买 nike

我是 SpringBoot 的新手,所以请随意填写需要的详细信息。

这是我写的Rest Controller在 SpringBoot 应用程序中,它按预期工作。我的问题是,如何正确创建此 Controller 的实例,以便我可以使用它来查询数据库?

我正在尝试做这样的事情,但总是出错。

InventoryController ic = new InventoryController();
System.out.println(ic.getInventory());

我试图避免必须对 SpringBoot 应用程序本身进行 REST 调用的情况。

提前致谢

最佳答案

在 Controller 上执行数据库调用被认为不是一个好的做法。您可以使用 Spring Data Repository,或编写利用存储库的服务层代码(对数据库执行调用)

可以按照下面的方式来做

@Service
public class InventoryService {
@Autowire
private IInventoryItemRepo inventoryItemRepo;

@Transactional
public List<Inventory> getInventories() {
//other business rules
return inventoryItemRepo.findAll();
}
//some other logic here
}

然后在你的 Controller 上

    @RestController
public class InventoryController {

Logger logger = LoggerFactory.getLogger(InventoryController.class);

@Autowired
private InventoryService inventoryService;
/**
* @return all items in inventory
*/
@HystrixCommand(fallbackMethod="failGood")
@RequestMapping(value = "/inventory", method = RequestMethod.GET)
@ResponseBody Iterable<Inventory> getInventory() {
return inventoryService.findAll();
}
....

}

如果你想避免在 spring 上执行调用,你可以将服务层代码注入(inject)到将执行调用的组件中,假设它是用 Spring 在 java 上编写的。

如果没有,你也可以构建一个 Message Queue 并将消息发送到那里。

另一种方法是这个叫做 Spring Data REST

关于java - 如何在单独的 Java 类上使用 Spring Boot Rest Controller 来查询数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41884383/

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