SpringBoot Feign接口方式调用服务
1、前文接 SpringBoot Eureka集群配置
2、EurekaConsumer_Feign_9002
添加openfeign依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
添加yml配置
eureka:
client:
register-with-eureka: false
serviceUrl: #注册中心的注册地址
defaultZone: http://127.0.0.1:7001/eureka/
server:
port: 9002 #服务端口号
spring:
application:
name: service-consumer #服务名称--调用的时候根据名称来调用该服务的方法
EurekaConsumer_Feign_9002启动类添加@EnableFeignClients扫描包
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients(basePackages = {"com.kikyo"})
public class EurekaConsumer_Feign_9002 {
public static void main(String[] args) {
SpringApplication.run(EurekaConsumer_Feign_9002.class, args);
}
}
TestService这个接口是从Eureka服务(SERVICE-PROVIDER
)拿实现类的
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
@Component
@FeignClient("SERVICE-PROVIDER")
public interface TestService {
@GetMapping("/get")
String get();
}
接收请求
import com.kikyo.service.TestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
public class TestController {
@Autowired
private TestService testService = null;
@RequestMapping("/get")
public String getUser() {
return testService.get();
}
}