feign动态代理是基于jdk动态代理来实现的:
所以按照模型 应该有feignClien接口类 + feignClient接口业务实现类 + InvocationHandler实现类, 我猜想 feign源码里会有InvocationHandler实现类, 但是feignClient接口业务实现类应该不是源码中某个类,而编写代码时也不需要提供这个实现类, 那feign究竟是怎么做到的呢?
按照上图,源码中Proxy.newInstance()返回的应该是业务接口实现类2的代理类4,常规的feign调用,是只需要开发提供业务接口1,那2是何时生成的?或者说为什么可以不提供2
你猜想的很对,feign既然是jdk代理,最终执行的就是InvocationHandler,首先要知道一点,像mybatis,feign,jpa这种,直接注入接口的,交给容器管理以后,都是FactoryBean去生成运行时bean,feign的话,则是FeignClientFactoryBean,看一下它的getObject方法






--

public void saveClassFile(Class clazz,String proxyName) {