一個工作5年的粉絲找到我,他說參加美團面試,遇到一個基礎題沒回答上來。 這個問題是:“資料庫連接池有什麼用?以及它有哪些關鍵參數”? 我說,這個問題都不知道,那你項目裡面的連接池配置怎麼設置的? 你們猜他怎麼回答。懂得懂得啊。 好的,關於這個問題,我們來看看普通人和高手的回答。 普通人: 資料庫連接 ...
轉自:
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 = "/express_v1/index", method = RequestMethod.POST) @ResponseBody String feignString(@RequestParam(value="page") Integer page); /** * 容錯處理類,當調用失敗時,簡單返回空字元串 */ @Component public class DefaultFallback implements CommonSwitch { @Override public String feignString(@RequestParam(value="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 = "json測試") @RequestMapping(value="/feignTest.json", method= RequestMethod.GET) public String feignTest(@RequestParam(name = "page") int page) { String tteString = commonSwitch.feignString(page); return tteString; } }