A better feign client library to combine with SpringBoot
.
Write Feign client with annotation
, like this:
We can provider an interface.
@FeignPlusClient(name = "github", url = "${github.url}")
public interface Github {
@RequestLine("GET /repos/{owner}/{repo}/contributors")
List<GitHubRes> contributors(@Param("owner") String owner, @Param("repo") String repo);
}
On the basis of @SpringBootApplication
:
@SpringBootApplication
@EnableFeignPlusClients(basePackages = "top.crossoverjie.feign.test")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
Now we can use it as we normally use Spring
.
@Autowired
private Github github ;
List<GitHubRes> contributors = github.contributors("crossoverJie", "feign-plus");
logger.info("contributors={}", new Gson().toJson(contributors));
feign.plus.max-idle-connections = 520
feign.plus.connect-timeout = 11000
feign.plus.read-timeout = 12000
# default(okhttp3)
feign.httpclient=http2Client