feign客户端是声明式的web service客户端,它让微服务之间的调用变得更简单了,类似controller调用service。Spring Cloud集成了Ribbon和Eureka,可在使用Feign时提供负载均衡的http客户端。
如果想在微服务A里调用微服务user-service的controller里的方法,三步设置:
1.在微服务A的启动类上加注解@EnableFeignClients。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class LeyouAuthApplication {
public static void main(String[] args) {
SpringApplication.run(LeyouAuthApplication.class, args);
}
}
2.在微服务A编写一个类UserClient继承微服务user-service的API,且在类UserClient上加上注解@FeignClient(“user-service”)。
import com.leyou.user.api.UserApi;
import org.springframework.cloud.openfeign.FeignClient;
@FeignClient("user-service")
public interface UserClient extends UserApi {
}
3.在微服务A使用@Autowired注解注入client类对象即可调用微服务user-service的controller里的方法。
@Autowired private UserClient userClient;