springCloud 子服务之间的调用

Springcloud 子服务A的方法

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestAController {

    @RequestMapping("/testA")
    public String TestAController(){
        return "Hello testA";
    }
}

Springcloud 子服务B 调用 子服务A这个方法

首先在服务B创建一个接口如下:服务A的服务名(已eureka中为准)+ 服务A的方法名

 

 以上是注册中心的服务名称

package com.example.serviceb.controller;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;

//填入注册中心中的应用名,也就是要调用的微服务的应用名
//在eureka页面中可以找到
@FeignClient("SERVICE-OBJCAT-A")
public interface ServiceAFeignClient {
    @RequestMapping("testA")
    public String TestAController();
} 

 

再创建一个类进行调用

首先添加注解声明是注册中心客户端@EnableEurekaClient实现不同子服务调用@EnableFeignClients。再将接口注入到此类中进行调用

注:也可在启动程序上加 @EnableEurekaClient和@EnableFeignClients

 

package com.example.serviceb.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
//添加注解声明是注册中心客户端
@EnableEurekaClient
//实现不同子服务调用
@EnableFeignClients
public class TestBController {
    @Autowired
    private ServiceAFeignClient serviceAFeignClient;

    @RequestMapping("call")
    public String call(){
        String redult = serviceAFeignClient.TestAController();
        return "b to a 访问结果 ---" + redult;
    }
} 

打印结果:

 

 

 

 
posted @ 2022-02-17 15:00  孤狼奋战  阅读(694)  评论(0编辑  收藏  举报