專案結構
主專案cloud-demo下有兩個子專案(微服務),每個專案都代表獨立模組,都有自己獨立的資料庫。
每個專案(微服務)只負責自己模組的資料,互不干涉。
場景描述:
根據訂單ID查詢訂單詳情的同時,把訂單所屬的使用者資訊一併帶回。
這裡就涉及微服務之間的相互呼叫
實現:
1、註冊RestTemplate
在訂單微服務專案中的 Application啟動類中註冊RestTemplate
/* * 建立RestTemplate並注入Spring容器 * */ @Bean public RestTemplate restTemplate(){ return new RestTemplate(); }
@RestController @RequestMapping("order") public class OrderController { @Autowired private OrderService orderService; @Autowired private RestTemplate restTemplate; @GetMapping("{orderId}") public Order queryOrderByUserId(@PathVariable("orderId") Long orderId) { // 根據id查詢訂單 Order order = orderService.queryOrderById(orderId); //利用RestTemplate傳送http請求,根據使用者ID查詢使用者 //url路徑 String url ="http://localhost:8081/user/"+order.getUserId(); User user = restTemplate.getForObject(url, User.class); //賦值 order.setUser(user); return order; } }
使用者微服務中提供了相關介面截圖:
效果展示:
總結: