做局部性的自定义configuration
feign提供给我们的可配置的东西
这是决定我们为什么之前可以使用SpringMVC来服务调用的原因。因为feign默认提供给我们的就是SpringMvcContract.
这里我们来演示如果我们不用SpringMvc的Contract那么具体怎么去操作?
自定义Feign的configuration
configuration不能在Application的作用域之内,如果在作用域内它默认就会把它加载进来,会出问题。
@SpringBootApplication 默认扫描的就是同级别和子目录
我们consumer同级别建一个包feignconf
application管的就是consumer包下的以及它的子包
我们在feignconf下加载的就是我们额外的配置。
我们去改变contract,选择feign包下的
使用feign默认提供给我们的集成方式,
上面加个@Bean注解
启动eurekaServer、provider和consumer服务
访问consumer的接口地址
ProviderApi加载我们刚才写的配置类
重启consumer服务就报错了:
Caused by: java.lang.IllegalStateException: Method ProviderApi#providerPost(String,String,UserModel) not annotated with HTTP method type (ex. GET, POST)
默认的配置不能识别我们当前写的语法
feign的写法演示
演示下feign默认提供的方式。这是feign的写法,写法非常的奇怪。
把原来的两个方法,invokerProviderController和providerPost都注释掉。
@RequestLine("GET /sayhello?message={message}") String invokerProviderController(@Param("message") String message);
ProviderAPIImpl类里,这里也注释掉
重启服务,也可以正常的访问。这是用feign自己的注解访问的方式。
http://localhost:7201/sayhello/feign?message=imooc
总结
这里我们演示了默认的和SpringMvc的Contract
进入Default方法
这里就是Contract里面有个Default
以上就是自定义配置给大家讲的内容