就是tmd用来调用远程服务接口的,不同于feign的是,支持了spring的一系列注解,用起来方便的一逼.
使用方式 1,添加OpenFeign的依赖(SpringBoot的Demo)2,定义OpenFeign接口(方式1:单独使用,不结合eureka)org.springframework.cloud spring-cloud-starter-openfeign
该接口的用途就是用来关联远程服务以及服务相关接口的,比如定义一个用来调用"user"服务的接口,
注意此时是脱离了Eureka注册中使用的情况,所以url填写服务名称进行调用的时候是不起作用的.只能通过服务的真是ip和端口进行远程调用.
package com.hugo.application_web_api.feign;
import com.hugo.entity.Result;
import com.hugo.entity.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
// FeignClient注解用来表明该接口为一个远程调用客户端
// url属性:就是具体要调用的服务的资源地址
@FeignClient(url = "http://localhost:9001/user")
public interface UserFeign {
@RequestMapping("/all")
Result> findAll();
}
2,定义OpenFeign接口(方式2:结合eureka使用)
package com.hugo.application_web_api.feign;
import com.hugo.entity.Result;
import com.hugo.entity.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
// 结合eureka使用,通过name属性指定服务的名称即可,并可以添加父级mapping映射值
@FeignClient(name = "user-service/user")
public interface UserFeign {
@RequestMapping("all")
Result> findAll();
}
3,启动类添加OpenFeign扫描注解
要使用OpenFeign的接口需要在启动类添加@EnableFeignClient注解,
该注解的用途就是扫描所有的FeignClient—也就是定义的各种OpenFeign的接口
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class ApplicationWebApiApplication {
public static void main(String[] args) {
SpringApplication.run(ApplicationWebApiApplication.class, args);
}
}
4,测试
访问 http://localhost:8080/feign/test1
job done~~~~~~~~~



