Feign声明式服务调用
1.pom.xml
<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>
2.application.properties配置
server.port=8080
spring.application.name=feign1
eureka.client.service-url.defaultZone=http://localhost:7777/eureka
3.定义接口
package org.huqi.springcloudserver1; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.RequestMapping; //value 服务名称 @FeignClient(value = "service1") public interface FeignService1 { @RequestMapping("/index1") String test1(); }
4.远程调用代码
@RestController public class ConsumerController { @Autowired FeignService feignService; @RequestMapping("/consumer") public String helloConsumer(){ return feignService.hello(); } }
5.调用类
package org.huqi.springcloudserver1; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class TestController { @Autowired FeignService1 feign; @RequestMapping("/test1") public String test1(){ return "其他调用"+feign.test1(); } }
6.启动类
package org.huqi.springcloudserver1; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @EnableDiscoveryClient @EnableFeignClients @SpringBootApplication public class Springcloudserver1Application { public static void main(String[] args) { SpringApplication.run(Springcloudserver1Application.class, args); } }