javascript
SpringCloud Feign实战(二)
一,新建Feign工程microservicecloud-consumer-dept-feign,拷貝microservicecloud-consumer-dept-80這個工程的配置和程序
二,修改配置文件pom.xml? 引入Feign依賴
<!--Feign的依賴引入--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-feign</artifactId></dependency>三,修改我們的啟動類為 DeptConsumer80_Feign_App?
package atguigu.springcloud;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient;@SpringBootApplication @EnableEurekaClient public class DeptConsumer80_Feign_App {public static void main(String[] args) {SpringApplication.run(DeptConsumer80_Feign_App.class, args);} }四,yml配置文件不用修改
五,修改api(microservicecloud-api)添加新的接口DeptClientService
新增新的注解@FeignClient
package com.atguigu.springcloud.service;import java.util.List;import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod;import com.atguigu.springcloud.entities.Dept;/*** * @Description: 修改microservicecloud-api工程,根據已經有的DeptClientService接口* @author zzyy* @date 2019年10月20日*/ @FeignClient(value = "MICROSERVICECLOUD-DEPT") public interface DeptClientService {@RequestMapping(value = "/dept/get/{id}", method = RequestMethod.GET)public Dept get(@PathVariable("id") long id);@RequestMapping(value = "/dept/list", method = RequestMethod.GET)public List<Dept> list();@RequestMapping(value = "/dept/add", method = RequestMethod.POST)public boolean add(Dept dept); }這樣就已經編碼完成但是api是我們所有工程的公共部分
注意:因為是公共部分,我們要重新編譯,Build Module 'microservicecloud-api'
六,我們編寫到這來我們回到microservicecloud-consumer-dept-feign工程修改Controller,
package atguigu.springcloud.controller;import com.atguigu.springcloud.entities.Dept; import com.atguigu.springcloud.service.DeptClientService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate;import javax.annotation.Resource; import java.util.List;@RestController @RequestMapping("/consumer") public class DeptController_Consumer {//@Autowired@Resourceprivate DeptClientService service;@RequestMapping(value = "/dept/get/{id}")public Dept get(@PathVariable("id") Long id){return this.service.get(id);}@RequestMapping(value = "/dept/list")public List<Dept> list(){return this.service.list();}@RequestMapping(value = "/dept/add")public Object add(Dept dept){return this.service.add(dept);} }七,我們前面在api定義了新的接口,加了@FeignClient注解使用Feign,那我們的主啟動類就要開啟,修改主啟動類
添加新的注解@EnableFeignClients(basePackages= {"com.atguigu.springcloud"})? 表示開啟新的feign調用方式
package atguigu.springcloud;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.cloud.netflix.feign.EnableFeignClients;@SpringBootApplication @EnableEurekaClient @EnableFeignClients(basePackages= {"com.atguigu.springcloud"}) @ComponentScan("com.atguigu.springcloud") public class DeptConsumer80_Feign_App {public static void main(String[] args) {SpringApplication.run(DeptConsumer80_Feign_App.class, args);} }到這來我們基本就已經完成了基本的編碼,那我們來測試下
?
關于啟動:Eureka集群搭建和啟動參考:https://blog.csdn.net/ywl470812087/article/details/102594937
啟動3個微服務提供者,如果不懂微服務提供者實現請參考https://blog.csdn.net/ywl470812087/article/details/102535582
啟動Feign工程:
訪問:http://localhost/consumer/dept/get/1
上圖測試結果看:默認使用了輪詢的負載均衡
總結:
?
?
總結
以上是生活随笔為你收集整理的SpringCloud Feign实战(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: servlet 调用oracle数据库存
- 下一篇: SpringCloud Eureka服务