Spring Cloud Alibaba微服务实战三 - 服务调用
在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
进行服务间调用。
评论已关闭