Dieser Artikel bietet Ihnen eine Einführung (Code) in die drei Möglichkeiten, RestTemplate zu verwenden. Ich hoffe, dass er für Freunde hilfreich ist.
Vorbereitung
Ich verwende eine gemeinsame API auf der Serverseite
@RestController public class ServerController { @GetMapping("/msg") public String msg(){ return "this is product' msg"; } }
Der erste Weg
Verwenden Sie restTemplate direkt und codieren Sie die URL fest
@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; } }
Der zweite Weg (verwenden Sie LoadBalancerClient, um die URL über den Anwendungsnamen abzurufen, und verwenden Sie dann 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; } }
Der dritte Weg (mit @LoadBalanced können Sie den Anwendungsnamen in restTemplate verwenden)
@Component public class RestTemplateConfig { @Bean @LoadBalanced public RestTemplate restTemplate(){ return new RestTemplate(); } }
Das obige ist der detaillierte Inhalt vonEinführung in drei Verwendungen von RestTemplate (Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!