本文主要介绍如何在springcloud中通过openFeign实现微服务接口远程调用。本例使用的springcloud版本为:2021.0.3,springboot版本为:2.6.8。
1、创建消费端项目
打开idea新建项目,选择maven,创建springboot项目consumer-openfeign-order。
2、pom文件配置
在项目pom中引入如下依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
</dependencies>
3、application.yml文件配置
在项目resources文件夹下创建application.yml文件,并按如下内容进行配置:
server:
port: 80
eureka:
client:
service-url:
defaultZone: http://localhost:7001/eureka
fetch-registry: true
instance:
instance-id: consumer-openfeign-order-${server.port}
prefer-ip-address: true
spring:
application:
name: consume-openfeign-order
4、主应用类配置
在项目src/main/java下创建主应用类 ConsumerOpenFeignOrderApplication.java,添加注解@EnableEurekaServer、@SpringBootApplication、@EnableFeignClients。
本文主要介绍如何在springcloud中通过openFeign实现微服务接口远程调用。本例使用的springcloud版本为:2021.0.3,springboot版本为:2.6.8。
1、创建消费端项目
打开idea新建项目,选择maven,创建springboot项目consumer-openfeign-order。
2、pom文件配置
在项目pom中引入如下依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
</dependencies>
3、application.yml文件配置
在项目resources文件夹下创建application.yml文件,并按如下内容进行配置:
server:
port: 80
eureka:
client:
service-url:
defaultZone: http://localhost:7001/eureka
fetch-registry: true
instance:
instance-id: consumer-openfeign-order-${server.port}
prefer-ip-address: true
spring:
application:
name: consume-openfeign-order
4、主应用类配置
在项目src/main/java下创建主应用类 ConsumerOpenFeignOrderApplication.java,添加注解@EnableEurekaServer、@SpringBootApplication、@EnableFeignClients。
@EnableEurekaClient
@SpringBootApplication
@EnableFeignClients
public class ConsumerOpenfeignOrderApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerOpenfeignOrderApplication.class, args);
}
}
5、远程微服务接口声明
在项目src/main/java/service下创建远程微服务接口类PaymentClientService,其中PAYMENT-SERVER为支付服务的服务名称。
@FeignClient(name = "PAYMENT-SERVER")
public interface PaymentClientService {
@GetMapping("/payment/get/{id}")
CommentResult<Payment> getById(@PathVariable(name = "id") Long id);
}
6、controller层调用
在controller层可以通过PaymentClientService进行远程微服务接口调用,使用方法如下:
@RestController
@RequestMapping("/order")
public class OrderController {
@Resource
private PaymentClientService paymentClientService;
@GetMapping("/get/{id}")
CommentResult<Payment> getById(@PathVariable(name = "id") Long id) {
return paymentClientService.getById(id);
}
}
7、测试验证
同时启动并运行项目eueka-server-7001、eueka-server-7002、payment-8001、payment-8002、consumer-openfeign-order。然后在postman中进行接口调用测试: