RestTemplate远程调用
RestTemplate是一个远程调用技术和rpc实现一样功能。也就是在不同的程序之间调用程序的方法。RestTemplate是存在消费者端不再提供者端。
具体实现:
1.创建两个项目,一个是服务消费者一个是服务提供者。
2.在服务消费者配置RestTemplate实例
3.在服务提供者端controller层创建方法并设置映射
4.在服务消费者通过RestTemplate访问远程程序的方法
案例:
这个是一个简单的案例,消费者端调用服务端的getname方法。
服务提供:
端口号为:8001
@RestController
public class TagController {
@RequestMapping("/getname")
public String getName(String name){
System.out.println("springcloud_provide_8001 ----getName---被调用了 name is"+name);
return name;
}
}
我们先测试服务提供(8001)访问是否正常
服务消费者
端口号为:8002
1.配置RestTemplate
@Configuration
public class RestTemplateBean {
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
2.controller层调用远程方法
@RestController
public class ConsumeTagController {
@Autowired
RestTemplate restTemplate;//获得rest实例
String URL="http://localhost:8001/";//远程服务器地址
@GetMapping("cgetname")//映射路径
public String getTagGetName(@PathParam("name") String name){
//restTemplate.getForObject调用get方法,返回值为Object类型
return restTemplate.getForObject(URL+"getname?name="+name,String.class);
}
}
测试: