9.Eureka服务发现+Ribbon+RestTemplate服务调用
order-service服务通过服务名称来代替 ip:port的方式访问user-service服务的接口。
原来的请求代码:
@Service
public class OrderServiceImpl implements OrderService {
@Autowired
private OrderMapper orderMapper;
@Autowired
private RestTemplate restTemplate;
@Override
public Order queryOrderById(Long orderId) {
Order order = orderMapper.findById(orderId);
String url = "http://localhost:8081/user/" + order.getUserId();
User user = restTemplate.getForObject(url, User.class);
order.setUser(user);
return order;
}
}
改造过后的代码:
1.添加负载均衡注解@LoadBalanced
@SpringBootApplication
@MapperScan("com.xkj.org.mapper")
public class OrderApplication {
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class, args);
}
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
2.调用代码
@Service
public class OrderServiceImpl implements OrderService {
@Autowired
private OrderMapper orderMapper;
@Autowired
private RestTemplate restTemplate;
@Override
public Order queryOrderById(Long orderId) {
Order order = orderMapper.findById(orderId);
String url = "http://user-service/user/" + order.getUserId();
User user = restTemplate.getForObject(url, User.class);
order.setUser(user);
return order;
}
}
原文地址:https://blog.csdn.net/qq_36352889/article/details/138040972
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!