0%

服务远程调用

  • 注册RestTemplate
1
2
3
4
5
6
7
8
9
10
11
12
13
@MapperScan("cn.itcast.order.mapper")
@SpringBootApplication
public class OrderApplication {

public static void main(String[] args) {
SpringApplication.run(OrderApplication.class, args);
}

@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
  • 修改order-service中的OrderService的queryOrderById方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@Service
public class OrderService {

@Autowired
private OrderMapper orderMapper;

@Autowired
private RestTemplate restTemplate;

public Order queryOrderById(Long orderId) {
// 1.查询订单
Order order = orderMapper.findById(orderId);
//2.利用RestTemplate发起http请求
//2.1 url路径
String url = "http://localhost:8081/user/" + order.getUserId();
//2.2 发送http请求,实现远程调用
User user = restTemplate.getForObject(url, User.class);
//2.3 封装User对象到Order
order.setUser(user);
// 4.返回
return order;
}
}

提供者与消费者

  • 服务提供者:一次业务中,被其它微服务调用的服务
  • 服务消费者:一次业务中,调用其它微服务的服务
  • 同一个服务既可以是提供者也可以是消费者
------ THEEND ------

欢迎关注我的其它发布渠道