springcloud使用feign實現服務間條用,參數數據太大,沒法調用成功解決方法

公司項目作一個關於程序報錯,實現給管理髮送郵件提醒時使用springcloud的feign調用接口時老是走斷路器git

通過分析得出,調用接口時傳遞的參數過大,沒法調用成功,解決方法以下:github

1:引入springcloud關於feign依賴spring

<dependency>
    <groupId>io.github.openfeign.form</groupId>
    <artifactId>feign-form</artifactId>
    <version>3.0.3</version>
</dependency>
<dependency>
    <groupId>io.github.openfeign.form</groupId>
    <artifactId>feign-form-spring</artifactId>
    <version>3.0.3</version>
</dependency>

2:編寫配置項app

@Configuration
public class CoreFeignConfiguration {

    @Autowired
    private ObjectFactory<HttpMessageConverters> messageConverters;


    @Bean
    @Primary
    @Scope(SCOPE_PROTOTYPE)
    Encoder feignFormEncoder() {
        return new SpringFormEncoder(new SpringEncoder(this.messageConverters));
    }

    @Bean
    public Logger.Level logger() {
        return Logger.Level.FULL;
    }
}

3:啓動類上添加註解學習

@EnableTransactionManagement

4:接口調用使用註解this

@FeignClient(value = "sendemail", fallback = SendEmailHystrix.class,
        configuration = CoreFeignConfiguration.class)
public interface SendEmail {

    @RequestMapping(method = RequestMethod.POST, value = "sendemail/commonMail"
                   ,consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
    Object sendEmail(@RequestParam("addTo") String addTo,
                     @RequestParam("setSubject") String setSubject,
                     @PathVariable("details") String details);
}

關注公衆號,領取學習資料spa

相關文章
相關標籤/搜索