springcloud之Feign调用

springcloud之Feign调用

​ 我们知道,Ribbon的调用方式是基于RestTemplate模板类的,这种方式需要我们自己拼接url,其过程相对复杂,而Feign调用就是为了解决这一问题的,我们只需要在消费方编写和提供方具有相同方法的接口,然后开启相关注解配置即可,使得我们就像调用本地方法一样,使用起来简洁方便,Feign 是在 Ribbon 的基础上进行了改进,也具有负载均衡功能。

1.建立一个使用Feign调用的消费者,此项目在SpringCloud 消费者和提供者文章中消费者80项目基础上进行改进,主要添加了service接口接口和controller的调用方式改变。

image-20201014193518882

@Component
@FeignClient("springcloud-provider-dept")
public interface DeptConsumerService {
    
    

    @RequestMapping("/dept/add")
    public boolean addDept(Dept dept);

    @RequestMapping("/dept/get/{id}")
    public Dept queryDeptById(@PathVariable("id") int id);

    @RequestMapping("/dept/list")
    public List<Dept> queryAllDept() ;

}

image-20201014193625115

@RestController
public class DeptConsumerController {
    
    

    @Autowired
    DeptConsumerService deptConsumerService;


    @RequestMapping("consumer/dept/add")
    public boolean addDept(Dept dept) {
    
    
        return deptConsumerService.addDept(dept);
    }

    @RequestMapping("consumer/dept/get/{id}")
    public Dept queryDeptById(@PathVariable("id") int id) {
    
    
        return deptConsumerService.queryDeptById(id);
    }

    @RequestMapping("consumer/dept/list")
    public List<Dept> queryAllDept() {
    
    
        return deptConsumerService.queryAllDept();
    }
}

image-20201014193743525

@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients(basePackages = "com.huang")
@ComponentScan("com.huang")
public class Consumer_dept_feign {
    
    
    public static void main(String[] args) {
    
    
        SpringApplication.run(Consumer_dept_feign.class,args);
    }

}

猜你喜欢

转载自blog.csdn.net/qq_34429554/article/details/109104317