1. 程式人生 > >spring cloud(三):Feign的應用

spring cloud(三):Feign的應用

spring cloud fegin java

1、概念

Feign 是一種聲明式、模板化的 HTTP 客戶端,是一個聲明web服務客戶端,這便得編寫web服務客戶端更容易。


2、應用

2.1 、在項目中,模塊與模塊之間需要互相調用,比如web模塊需要調用service模塊的服務,這個時候就需要在web引入Fegin,創建項目web-fegin

2.2、在pom文件裏面添加

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-feign</artifactId>

</dependency>

2.3、創建啟動類WebFeignApplication

@SpringBootApplication

@EnableDiscoveryClient

@EnableFeignClients(basePackages="com.web")

public class WebFeignApplication{

public static void main(String[] args) {

SpringApplication.run(FeignApplication.class, args);

}

}

2.4、定義服務接口類UserFeignClient

@FeignClient(name =WebConstants.SERVIE_USER_NAME)

public interface UserFeignClient {

@RequestMapping("/{id}")

public User findByIdFeign(@RequestParam("id") Long id);

}

2.5、在web層調用Fegin

@RestController

public class FeignController {

@Autowired

private UserFeignClient userFeignClient;

@GetMapping("feign/{id}")

public User findByIdFeign(@PathVariable Long id) {

User user = this.userFeignClient.findByIdFeign(id);

return user;

}

}


2.6 如果不使用上面的fegin,則得自己寫個服務調用類,來調用service的服務,增加編程的難度,既然有了fegin,就沒必要重復造輪子了。


3、application.properties的配置

spring.application.name=web-fegin

server.port=8020

eureka.client.serviceUrl.defaultZone=http://localhost:9411/eureka/

service.user.name=microservice-provider-user

4、定義常量WebConstants

public class WebConstants{

public static final String SERVIE_USER_NAME="${service.user.name}";

}

5、訪問

http://127.0.0.1:8020/fegin/1


6、總結:

其實通過Feign封裝了HTTP調用服務方法,使得客戶端像調用本地方法那樣直接調用方法

spring cloud(三):Feign的應用