学习spring cloud记录3-服务远程调用

前言

记录一个非常简单的远程调用方式,在spring cloud微服务中,服务之间时如何进行调用的?在学习通过服务名调用方式之前,先学一种非常简单的调用方式,那就是通过url进行调用,此url为ip+端口号+地址的方式

使用

spring提供了工具RestTemplate,在每次进行调用时需要new一个RestTemplate对象,然后进行调用接口,在spring cloud中,可以在启动类中注册RestTemplate对象,在后面的代码中直接注入即可,无需new对象。

在启动类中添加代码:

 1 package priv.sinoam.demoorder;
 2 
 3 import org.springframework.boot.SpringApplication;
 4 import org.springframework.boot.autoconfigure.SpringBootApplication;
 5 import org.springframework.context.annotation.Bean;
 6 import org.springframework.web.client.RestTemplate;
 7 
 8 /**
 9  * @author 龙谷情
10  */
11 @SpringBootApplication
12 public class DemoOrderApplication {
13 
14     public static void main(String[] args) {
15         SpringApplication.run(DemoOrderApplication.class, args);
16     }
17 
18     /**
19      * 创建RestTemplate并注入Spring容器
20      * @return
21      */
22     @Bean
23     public RestTemplate restTemplate(){
24         return new RestTemplate();
25     }
26 
27 }

调用时如此调用即可:

 1     @Autowired
 2     private RestTemplate restTemplate;
 3     public Map<String, Object> test1() {
 4         DemoOrderInfo demoOrderInfo = demoOrderInfoDao.selectById(1);
 5         Map<String, Object> map = new HashMap<>(16);
 6         map.put("order", demoOrderInfo);
 7         //调用demo-user里面的请求
 8         String url = "http://localhost:9001/demouser/user/test";
 9         Map<String, Object> map2 = restTemplate.getForObject(url, Map.class);
10         map.put("user", map2);
11         return map;
12     }

本次实验在order服务中调用user接口。第9行可根据需要的类型进行修改,本次使用Map类型。

结束

一次非常简单的记录,时间少,就少记录一点。下面学习记录Eureka服务

posted @ 2022-04-06 21:56  龙谷情Sinoam  阅读(101)  评论(0编辑  收藏  举报
Smiley face