1. Web ☑️Web
Cloud Discovery ☑️Eureka Server
Cloud Routing ☑️Feign
2. ServiceFeignApplication
通过注解@EnableDiscoveryClient 向服务中心注册
通过注解@EnableFeignClients 开启Feign的功能
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 ServiceFeignApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceFeignApplication.class, args);
}
}
3. application.yml
server:
port: 8765
eureka:
instance:
hostname: localhost
client:
service-url:
default-zone: http://${eureka.instance.hostname}:8761/eureka/
spring:
application:
name: service-feign
4. Service
通过注解@FeignClient(name = "服务名"), 来指定调用哪个服务
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
@FeignClient(name = "service-hi")
public interface FeignHiService {
@RequestMapping(value = "/hi", method = RequestMethod.GET)
String feignHi(@RequestParam(value = "name") String name);
}
5. Controller
import org.kaidi.servicefeign.service.FeignHiService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class FeignHiController {
@Autowired
private FeignHiService feignHiService;
@GetMapping("/hi")
public String hi(@RequestParam String name) {
return feignHiService.feignHi(name);
}
}
6. 启动工程
Application | AMIs | Availability Zones | Status |
---|---|---|---|
SERVICE-FEIGN | n/a (1) | (1) | UP (1) - deair:service-feign:8765 |
SERVICE-HI | n/a (1) | (1) | UP (1) - deair:service-hi:8762 |
访问http://localhost:8765/hi?name=
hi ,i am from port:8762