关于SpringCloud 服务间互相调用的方式

一、@FeignClient

有2种调用方法

1.服务提供方已经注册到注册中心
直接使用@FeignClient("服务提供方在注册中心注册服务的名字")
不多说直接上码
@FeignClient("INTER-SERVICE")
@Service
public interface TestClient2 {

    @PostMapping("task-controller/contractSw")
    @ResponseBody
    Result getcontractSw();
}
Service调用,Impl实现。
public interface TestService {
	Result getcontractSw();
}
@Override
public Result getcontractSw() {
	return testClient2.getcontractSw();
}
主要为了学习使用方法,所以这边我选了服务方提供的一个无参方法,然后Controller中调用实现类方法。
@ResponseBody
@PostMapping("/testC")
public Result getcontractSw(){
	return testService.getcontractSw();
}
2.服务提供未在注册中心注册
那就使用@FeignClient("${httpurl}")
还是不多说直接上代码
@FeignClient(url = "${jcos.url}", name = "jcosService")
@Service
public interface TestClient {

    @PostMapping("rg/cancelTimeOutArea")
    @ResponseBody
    Result getcancelTimeOutArea();
}
我调用的都是无参方法,所以Service和Impl的实现方法都一样,太晚了,有点困,不想写了。
然后Controller中调用
@ResponseBody
@PostMapping("/testCancel")
public Result getcancelTimeOutArea(){
	return testService.getcancelTimeOutArea();
}
最后,主函数记得加@EnableFeignClients
@SpringBootApplication(scanBasePackages = {""})
@MapperScan(basePackages = "")
@EnableCaching
@EnableRetry
@EnableScheduling
@EnableAsync
@EnableFeignClients

public class BusinessApplication {

    public static void main(String[] args) {
        SpringApplication.run(BusinessApplication.class, args);
    }

}
	

二、使用RestTemplate

这个没有用到FeignClient,所以直接Service先定义接口,然后Impl中实现。
也不多说,直接上码。
public interface TestService {
	ResultDto getcancelTimeOutArea1();
}
	@Value("${jcos.url}")
    private String jcosurl;

	@Override
    public ResultDto getcancelTimeOutArea1(){
        String url = "rg/cancelTimeOutArea";
        url = jcosurl + url;
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        HttpEntity<Object> requestEntity = new HttpEntity<>(headers);
        RestTemplate restTemplate = new RestTemplate();

        return restTemplate.postForObject(url, requestEntity, ResultDto.class);
    }

最后测试方法,用postman测试,安装包位置可以看这篇结尾
链接:https://blog.csdn.net/weixin_43099980/article/details/115190687

完结,撒花!可以睡觉了!!!

你可能感兴趣的:(java,学习,java,spring,后端)