中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java微服務間接口調用feign的方法是什么

發布時間:2023-03-30 15:49:09 來源:億速云 閱讀:92 作者:iii 欄目:開發技術

今天小編給大家分享一下Java微服務間接口調用feign的方法是什么的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

    Feign說明

    Feign是一種聲明式、模板化的HTTP客戶端。在spring cloud中使用Feign,可以做到類似于普通的接口的請求調用,可以發現對應的服務的接口,進而直接調用對應服務中的接口。

    引入依賴,啟動類開啟客戶端

    首先需要在各個微服務中引入依賴

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>

    然后在啟動類中加入注解@EnableFeignClients ,開啟Feign客戶端。

    在各自的啟動類中添加注釋:

    @EnableDiscoveryClient 和 @EnableFeignClients ,并在配置文件中添加各自的服務名,以及配置Nacos的服務地址

    //服務A的啟動類
     
    @EnableDiscoveryClient  //nacos注冊
    @EnableFeignClients     //Feign 服務調用
    @SpringBootApplication
    public class ApplicationA {
        public static void main(String[] args){
            SpringApplication.run(ApplicationA.class,args);
        }
    }
     
    //服務B的啟動類
     
    @EnableDiscoveryClient  //nacos注冊
    @EnableFeignClients     //Feign 服務調用
    @SpringBootApplication
    public class ApplicationB {
        public static void main(String[] args){
            SpringApplication.run(ApplicationB.class,args);
        }
    }

    application.properties

    服務A配置
    # 服務端口
    server.port=8001
    # 服務名
    spring.application.name=serviceA
     
    # nacos服務地址
    spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
     
    --------------------------服務B配置-------------------------------
    # 服務端口
    server.port=8003
    # 服務名
    spring.application.name=serviceB
     
    # nacos服務地址
    spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

    3.在微服務A中創建client包和接口

    然后在當前服務內編寫Feign接口,接口與普通的controller層類似,只是在類上不需要寫@Controller等注解,只需要加上@Component 、 @FeignClient注解即可,下面的請求方法需要寫上請求方式(根據提供服務的接口適配)@PostMapping(“/findList”)注解。如下:

    @Component
    @FeignClient(value = "sso", path = "/api/user", fallback = UserClientHystrix.class)//value是需要調用的服務名稱,path是sso服務內的請求路徑
    //value必選是服務名(就是yaml中server.name)
    //path是前綴(就是yaml中server.contentPath)
    //fallback是服務熔斷的類
    public interface UserClient {
     
        /**
         * 獲取對象集合
         * @param object
         * @return
         */
        @PostMapping("/findList")//根據服務適配添加注解
        Result<UserDO> findList(@CustomJSONBody Object object);
    }
    //@FeignClient注解用于指定從哪個服務中調用功能 ,名稱與被調用的服務名保持一致。

    在微服務A中創建client包和接口

    @Component
    @FeignClient("serviceB")  
    public interface ServiceBClient {   
        @PostMapping("serviceB/test")
        public Result test(@RequestParam String args);
    }

    注意微服務A(調用者)中ServiceBClient接口中編寫的是微服務B中被調用的接口,參數類型方法名要一致。以下時微服務B中被調用的接口(Controller)

    服務B中接口的示例
     
    @RestController
    @RequestMapping("serviceB")
    @CrossOrigin
    public class VodController {
        
        @PostMapping("test")
        public void test(@RequestParam String args){
            System.out.println(args);
        }
    }

    4.在微服務A中調用服務B的接口

    方法總結

    在微服務A中調用服務B中的接口

    1.初始化操作:添加依賴,配置等等。

    2.創建Client接口,使用@GetMapping注解對被調用的微服務進行地址映射。

    3.在微服務A中調用Client接口中的方法。

    注:① 接口層添加注解@FeignClient,并在注解中指明屬性value="服務提供方的實例名";

    ② 在方法上添加映射的URL要與服務提供方接口的URL一致。

    以上就是“Java微服務間接口調用feign的方法是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    巫山县| 信丰县| 塘沽区| 河西区| 永川市| 同德县| 分宜县| 陆良县| 于都县| 友谊县| 晋州市| 乌鲁木齐县| 万年县| 凤山县| 朔州市| 宾阳县| 额敏县| 明水县| 克拉玛依市| 万年县| 巴南区| 城固县| 交口县| 开化县| 平果县| 威信县| 亚东县| 禄丰县| 晋宁县| 临城县| 互助| 青阳县| 栾川县| 禄丰县| 汕尾市| 岳池县| 武汉市| 萍乡市| 肃北| 肃宁县| 安顺市|