Http調(diào)用利器-Feign

最近在用SpringCloud來寫畢設(shè),用到了Feign,感覺體驗還不錯,今天來做一個簡略的介紹。

Feign是Netflix開發(fā)的聲明式、模板化的HTTP客戶端,我們可以直接使用注解+接口的形式進(jìn)行Http調(diào)用,在SpringCloud中進(jìn)行了增強,可以直接使用SpringMVC的注解進(jìn)行調(diào)用。

使用方法。

  1. 添加依賴
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
            <version>2.0.2.RELEASE</version>
        </dependency>
  1. 在應(yīng)用入口處開啟
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableFeignClients
public class MessageApplication {

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

}
  1. 配置
import feign.Logger;
import feign.Request;
import feign.Retryer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * FeignConfig
 *
 * @author lirongqian
 * @since 2018/10/17
 */
@Configuration
public class FeignConfig {

    @Bean
    public Request.Options options() {
        // 連接超時配置為10s,讀取超時為5s
        return new Request.Options(10000, 5000);
    }

    @Bean
    public Retryer feignRetryer() {
        // 重試3次
        return new Retryer.Default(100, 1000, 3);
    }

    @Bean
    public Logger.Level feignLoggerLevel() {
        // 全量日志打印
        return Logger.Level.FULL;
    }
}
  1. 聲明接口
import com.stalary.pf.outside.data.ResponseMessage;
import com.stalary.pf.outside.data.UploadAvatar;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * @author Stalary
 * @description
 * @date 2019/1/1
 */
// 直接使用url進(jìn)行調(diào)用時需要配置url
@FeignClient(name = "user", url = "http://120.24.5.178:8080")
@Component
public interface UserClient {

    @PostMapping("/user/avatar")
    ResponseMessage uploadAvatar(@RequestBody UploadAvatar uploadAvatar);
}

經(jīng)過上面四個步驟,我們就可以開始使用Feign來進(jìn)行Http調(diào)用了,是不是比HttpClient簡單了很多?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容