我正在学习使用Angular和Spring Boot实现应用程序。我们的应用程序将Angular用于前端,并在后端使用Spring Boot Rest Services。我正在寻找一种基于从Rest Service 1(调用RestController1)的ID提取某些数据并从Rest Service 1调用Rest Service 2的方法,以获取从RestController1提取的数据的对应数据。如何从RestController1调用RestController2并获取数据。我们正在使用休眠模式。请让我知道是否有任何Spring参考文档可以阅读和理解实现。任何帮助将不胜感激。
谢谢
答案 0 :(得分:2)
从另一个控制器调用一个控制器听起来是个坏主意,原因有几个:
这是您的应用程序,应考虑在服务层(而不是控制器)上聚合所需的所有数据。这样控制器就可以在一个服务方法调用中获取所有必需的数据。
您真的不希望该http请求-所有序列化,DNS调用,http请求调用,反序列化-所有这些都会以某种方式影响性能,如果可以避免使用,请不要使用它:) < / p>
即使对性能的影响不会打扰您(因为它影响不大),也请不要忘记网络不可靠
如果要从RestController2
调用的RestController1
仅应由应用程序访问,则应为其提供安全性,因为这可能是多余的
即使您仍然想调用另一个控制器,也要考虑仅调用它的方法(没有任何http请求),因为它只是常规类的方法。
答案 1 :(得分:0)
有很多方法可以做到这一点。其中之一是从春季开始使用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);
}
请参见docs。