SpringCloud中Feign的使用

303 阅读1分钟

作用:方便快捷的实现各个服务之间的调用

1、引入依赖

        <!--引入feign-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

2、在启动类上加入注解(@EnableFeignClients)

package cn.itcast;

import org.springframework.boot.SpringApplication;
import org.springframework.cloud.client.SpringCloudApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;

@EnableFeignClients
@SpringCloudApplication
public class ConsumerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class);
    }
}

3、编写一个借口,在接口上用SpringMVC的方式告诉它请求方式、请求名称等信息,并且用(@FeignClient("服务名称"))注解告诉它服务名称

package cn.itcast.consumer.client;

import cn.itcast.consumer.pojo.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

@FeignClient("user-service")
public interface UserClient {

    @GetMapping("user/{id}")
    User queryUserById(@PathVariable("id") Long id);
}

4、在使用类中如调用本项目中的类的方法相同,自动注入并使用

@Autowired
private UserClient userClient;


public User queryUserById(@PathVariable("id") Long id) {

   return userClient.queryUserById(id);
}