在項目中集成feign踩了好多坑,特此記錄一下
如題:
百度搜到好多解決方案,沒一個是對的!
解決方案:
1.檢查註解以及添加日誌
消費者服務:添加@EnableFeignClients註解,pom
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2.配置項
這裏的name指定的是實例名:
@FeignClient(name = "eshop-server", configuration = FeignConfiguration.class)
@Service
public interface BannerFeignClient {
@RequestLine("GET /picchealth/eshop/bannerser/list")
Object list();
}
這裏我加了日誌打印:
@Configuration
public class FeignConfiguration {
/**
* 將契約改爲feign原生的默認契約。這樣就可以使用feign自帶的註解了。
* @return 默認的feign契約
*/
@Bean
public Contract feignContract() {
return new Contract.Default();
}
@Bean
Logger.Level feignLoggerlevel(){
return Logger.Level.FULL;
}
}
3.配置日誌輸出(很重要)
logging:
level:
com.XXX.feign.BannerFeignClient: debug
最後一步:
一定要看編譯環境是否把類和實體編譯過來,我就是沒看,即使多次clean,package也沒用!這個絕對是idea或者系統bug