이 글은 RestTemplate을 사용하는 세 가지 방법에 대한 소개(코드)를 제공합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
준비
서버측에서 공통 API를 사용하고 있습니다
@RestController public class ServerController { @GetMapping("/msg") public String msg(){ return "this is product' msg"; } }
첫 번째 방법
직접 RestTemplate을 사용합니다 , 죽음에 대한 URL 쓰기
@Slf4j @RestController public class ClientController { @GetMapping("/getProductMsg") public String getProductMsg(){ // 1、第一种方式(直接使用restTemplate,url写死) RestTemplate restTemplate = new RestTemplate(); String response = restTemplate.getForObject("http://localhost:9082/msg",String.class); log.info("response={}",response); return response; } }
두 번째 방법(loadBalancerClient를 사용하여 애플리케이션 이름을 통해 URL을 가져온 다음 RestTemplate을 사용)
@Slf4j @RestController public class ClientController { @Autowired private LoadBalancerClient loadBalancerClient; @GetMapping("/getProductMsg") public String getProductMsg(){ //2、第二种方式(利用loadBalancerClient通过应用名获取url,然后再使用restTemplate) ServiceInstance serviceInstance = loadBalancerClient.choose("PRODUCT"); String url = String.format("http://%s:%s",serviceInstance.getHost(),serviceInstance.getPort()) + "/msg"; RestTemplate restTemplate = new RestTemplate(); String response = restTemplate.getForObject(url,String.class); log.info("response={}",response); return response; } }
세 번째 방법(@LoadBalanced를 사용하면 RestTemplate에서 애플리케이션 이름을 사용할 수 있음)
@Component public class RestTemplateConfig { @Bean @LoadBalanced public RestTemplate restTemplate(){ return new RestTemplate(); } }
위 내용은 RestTemplate의 세 가지 사용법 소개(코드)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!