Fegin调用springcloud服务

Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。

简而言之:

  • Feign 采用的是基于接口的注解
  • Feign 整合了ribbon

创建一个order-server-fegin工程

Maven依赖


		org.springframework.boot
		spring-boot-starter-parent
		1.5.2.RELEASE
		 
	

	
		UTF-8
		UTF-8
		1.8
	

	
		
			org.springframework.cloud
			spring-cloud-starter-eureka
		
		
			org.springframework.cloud
			spring-cloud-starter-ribbon
		
		
			org.springframework.boot
			spring-boot-starter-web
		
		
			org.springframework.cloud
			spring-cloud-starter-feign
		
		
			org.springframework.boot
			spring-boot-starter-test
			test
		
	

	
		
			
				org.springframework.cloud
				spring-cloud-dependencies
				Dalston.RC1
				pom
				import
			
		
	

	
		
			
				org.springframework.boot
				spring-boot-maven-plugin
			
		
	

	
		
			spring-milestones
			Spring Milestones
			https://repo.spring.io/milestone
			
				false
			
		
	

application.yml配置

server:
  port: 7777
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8001/eureka/

spring:
  application:
    name: order-server-fegin

创建一个接口service调用远程服务

@FeignClient(value = "member-service")
//value指的就是调用服务的spring.application.name 
public interface MemberFeign {


    @RequestMapping("/getUserList")
    public List getUserListByFeign();
}

创建一个controller

@RestController
public class MemberFeignController {

    @Autowired
    MemberFeign memberFeign;

    @RequestMapping("/getUserList")
    public List getUserList(){
       return memberFeign.getUserListByFeign();
    }
}

创建启动类

@SpringBootApplication
@EnableFeignClients //注册到rureka注册中心
@EnableEurekaClient //feign开关 feign自带负载均衡的
public class FeignApp {

    public static void main(String[] args) {
        SpringApplication.run(FeignApp.class,args);
    }
}

Fegin调用springcloud服务_第1张图片

Fegin调用springcloud服务_第2张图片

自动开启负载均衡的,启动两个会员服务不同端口

调用成功! 

你可能感兴趣的:(java,springcloud)