Spring 如何从另一个Rest控制器调用Rest控制器

Spring 如何从另一个Rest控制器调用Rest控制器,spring,Spring,我正在学习使用Angular和Spring引导实现应用程序。我们的应用程序在前端使用Angular,在后端使用Spring Boot Rest服务。我正在寻找一种方法,根据Rest服务1中的Id(调用RestController1)提取一些数据,并从Rest服务1中调用Rest服务2,以获取从RestController1提取的数据的相应数据。如何从RestController1调用RestController2并获取数据。我们正在使用hibernate。请告诉我是否有任何spring参考文档可

我正在学习使用Angular和Spring引导实现应用程序。我们的应用程序在前端使用Angular,在后端使用Spring Boot Rest服务。我正在寻找一种方法,根据Rest服务1中的Id(调用RestController1)提取一些数据,并从Rest服务1中调用Rest服务2,以获取从RestController1提取的数据的相应数据。如何从RestController1调用RestController2并获取数据。我们正在使用hibernate。请告诉我是否有任何spring参考文档可以阅读和理解实现。非常感谢您的帮助


谢谢

有很多方法可以做到这一点。其中之一是使用spring中的RestTemplate:

private static void getEmployees()
{
    final String uri = "http://localhost:8080/springrestexample/employees";

    RestTemplate restTemplate = new RestTemplate();
    String result = restTemplate.getForObject(uri, String.class);

    System.out.println(result);
}

请参阅。

从另一个控制器调用一个控制器听起来是个坏主意,原因有两个:

    >P>这是您的应用程序,您应该考虑在服务层上聚合所有需要的数据,而不是在控制器上。所以控制器可以在一个服务方法调用中获得所有必需的数据

  • 您真的不希望http请求—所有序列化、DNS调用、http请求调用、反序列化—所有这些都会以某种方式影响性能,如果您可以避免使用它,请不要使用它:)

  • 即使性能影响不会困扰您(因为它无关紧要),也不要忘记网络是不可靠的

  • 如果要从
    RestController1
    调用的
    RestController2
    应该只能由应用程序访问,则应该为其提供安全性,而这可能是多余的



即使您仍然想调用另一个控制器,只考虑调用它的方法(没有任何HTTP请求),因为它只是一个普通类的方法。

<代码> RestMase是感谢您快速回复的方式。我将了解更多关于RestTemplate的信息,看看这是否解决了我的问题谢谢您的快速回复。我会看看RestTemplate是否能帮我解决这个问题