【微服务架构】SpringCloud之Feign
什么是Feign
Feign 是一個聲明web服務客戶端,這便得編寫web服務客戶端更容易,使用Feign 創建一個接口并對它進行注解,它具有可插拔的注解支持包括Feign注解與JAX-RS注解,Feign還支持可插拔的編碼器與解碼器,Spring Cloud 增加了對 Spring MVC的注解,Spring Web 默認使用了HttpMessageConverters, Spring Cloud 集成 Ribbon 和 Eureka 提供的負載均衡的HTTP客戶端 Feign.
實現
1、先要啟動EureKaserver工程(注冊中心)和SpringCloud-Service工程(服務生產者)
可以參考:https://blog.csdn.net/u012081441/article/details/80708060
2、創建一個maven工程SpringCloud-Feign
pom.xml文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.fit</groupId><artifactId>SpringCloud-Feign</artifactId><version>0.0.1-SNAPSHOT</version><!-- SpringBoot父類依賴引用 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.2.RELEASE</version><relativePath /></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><!--eureka server --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-feign</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Dalston.RC1</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build><repositories><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></repository></repositories></project>
application.yml文件配置
eureka:client:serviceUrl:defaultZone: http://localhost:8888/eureka/
server:port: 8765
spring:application:name: SpringCloud-Feign
定義服務接口類UserService.java,使用@FeignClient(“SpringCloud-Service”)注解來綁定該接口對應SpringCloud-Service服務
@FeignClient("SpringCloud-Service")
public interface UserService {@RequestMapping(value ="getUser")public Map<String,Object> getUser();
}
在web層中調用上面定義的UserController
@RestController
public class UserController {@Resourceprivate UserService userService;@RequestMapping(value ="getUser")public Map<String,Object> getUser(){return userService.getUser();}
}
在應用主類中通過@EnableFeignClients注解開啟Feign功能
啟動文件FeignApp.java
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class FeignApp {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubSpringApplication.run(FeignApp.class, args);}
}
源碼下載
總結
以上是生活随笔為你收集整理的【微服务架构】SpringCloud之Feign的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【微服务架构】SpringCloud使用
- 下一篇: 【微服务架构】SpringCloud之路