value是指远程调用的服务名。这里定义了一个枚举,使用nacos注册中心的服务名称
@FeignClient(value = XcFeignServiceNameList.XC_CONTENT_SERVICE)
public interface ContentApiAgent {
@GetMapping("content/course/l/teachplanmedia/{mediaId}")
RestResponse<TeachplanMediaDTO> getByMediaId(@PathVariable Long mediaId);
}
开启feign的功能。扫描包路径为 feignclient的所在包
@Configuration
@EnableFeignClients(basePackages = {"com.xuecheng.api.content.feign"})
public class MyFeignRequestInterceptor {
}
由于各个微服务直接,其他微服务自动注入feign可能会报错 这里我们直接引入spring自动装配
在resource下创建一个文件夹,指定spring的工厂
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.xuecheng.api.content.feign.config.MyFeignRequestInterceptor
后面指定开始feign功能类的全路径 eg 上面举例的MyFeignRequestInterceptor类