轉自:
http://www.java265.com/JavaFramework/SpringBoot/202205/3532.html
下文筆者講述SpringBoot集成feign的方法分享,如下所示
實作思路:
1.引入相應的jar包
2.SpringBoot中加入EnableFeignClients注解
例:
引入jar包
<dependency>
<groupId>com.netflix.feign</groupId>
<artifactId>feign-httpclient</artifactId>
<version>8.18.0</version>
</dependency>
<dependency>
<groupId>com.netflix.feign</groupId>
<artifactId>feign-core</artifactId>
<version>8.18.0</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
<version>1.4.4.RELEASE</version>
</dependency>
---在啟動類中加入默認啟動feign相關
@EnableFeignClients
3.寫接入的公共介面類
@FeignClient(name = "api",url = "http://域名/api")
public interface CommonSwitch {
//對應的服務里的介面地址,及請求方式
@RequestMapping(value = "https://www.cnblogs.com/express_v1/index", method = RequestMethod.POST)
@ResponseBody
String feignString(@RequestParam(value="https://www.cnblogs.com/java265/p/page") Integer page);
/**
* 容錯處理類,當呼叫失敗時,簡單回傳空字串
*/
@Component
public class DefaultFallback implements CommonSwitch {
@Override
public String feignString(@RequestParam(value="https://www.cnblogs.com/java265/p/page") Integer page){
return "";
}
}
}
FeignClient引數說明:
name:指定FeignClient的名稱,如果專案使用了Ribbon,name屬性會作為微服務的名稱,用于服務發現
url: url一般用于除錯,可以手動指定@FeignClient呼叫的地址
decode404:當發生http 404錯誤時,如果該欄位位true,會呼叫decoder進行解碼,否則拋出FeignException
configuration: Feign配置類,可以自定義Feign的Encoder、Decoder、LogLevel、Contract
fallback: 定義容錯的處理類,當呼叫遠程介面失敗或超時時,會呼叫對應介面的容錯邏輯,fallback指定的類必須實作@FeignClient標記的介面
fallbackFactory: 工廠類,用于生成fallback類示例,通過這個屬性我們可以實作每個介面通用的容錯邏輯,減少重復的代碼
path: 定義當前FeignClient的統一前綴
4.對外的介面(也就是controller)
@Api(tags = "feign集成測驗")
@RestController
@RequestMapping("/feigntest")
@Slf4j
@CrossOrigin(origins = "*", maxAge = 3600)
public class FeigntestController {
@Autowired
private CommonSwitch commonSwitch;
/**
* @param page
* @return
*/
@ApiOperation(value = "https://www.cnblogs.com/java265/p/json測驗")
@RequestMapping(value="https://www.cnblogs.com/feignTest.json", method= RequestMethod.GET)
public String feignTest(@RequestParam(name = "page") int page) {
String tteString = commonSwitch.feignString(page);
return tteString;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/491868.html
標籤:Java
上一篇:Java中檢查字串是否是有效日期
