Spring Cloud Alibaba微服务实战三 - 服务调用
warning:
这篇文章距离上次修改已过421天,其中的内容可能已经有所变动。
在Spring Cloud Alibaba微服务实战系列中,服务间调用通常使用OpenFeign进行。以下是使用OpenFeign进行服务间调用的示例代码:
- 在
order-service模块的pom.xml中添加依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>- 在
order-service模块中,启动类上添加@EnableFeignClients注解:
@SpringBootApplication
@EnableFeignClients
public class OrderServiceApplication {
public static void main(String[] args) {
SpringApplication.run(OrderServiceApplication.class, args);
}
}- 创建Feign客户端接口:
@FeignClient("user-service") // 指定要调用的服务名称
public interface UserClient {
@GetMapping("/user/{id}") // 指定要调用的具体接口地址
User findById(@PathVariable("id") Long id);
}- 在
OrderService类中使用Feign客户端:
@RestController
public class OrderService {
@Autowired
private UserClient userClient;
@GetMapping("/order/{id}")
public Order getOrderWithUser(@PathVariable("id") Long id) {
// 调用user-service的接口
User user = userClient.findById(id);
// 构建Order对象,并设置User信息
Order order = new Order();
order.setUser(user);
// ... 其他业务逻辑
return order;
}
}在上述代码中,UserClient是一个Feign客户端接口,用于定义与user-service的/user/{id}接口的调用。在OrderService中,通过注入UserClient,并在getOrderWithUser方法中调用findById方法来获取用户信息。这样,order-service就可以通过Feign与user-service进行服务间调用。
评论已关闭