一、OpenFegin简介

Feign 是声明性(注解)Web 服务客户端。它使编写 Web 服务客户端更加容易。要使用 Feign,请创建一个接口并对其进行注解。它具有可插入注解支持,包括 Feign 注解和 JAX-RS 注解。Feign 还支持可插拔编码器和解码器。Spring Cloud 添加了对 Spring MVC 注解的支持,并支持使用 HttpMessageConverters,Spring Web 中默认使用的注解。Spring Cloud 集成了 Ribbon 和 Eureka 以及 Spring Cloud LoadBalancer,以在使用 Feign 时提供负载平衡的 http 客户端。
Feign 是一个远程调用的组件 (接口,注解) http 调用的
Feign 集成了 ribbon,ribbon 里面集成了 eureka

二、OpenFegin入门

2.1 本次调用设计图

 

2.2  首先启动一台Eureka Server

2.3 其次创建一个provider-order-service

 

然后修改pom文件,在主类中增加注解。

修改配置文件如下:

server:
  port: 8081
spring:
  application:
    name: provider-order-service
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka
  instance:
    instance-id: ${spring.application.name}:${server.port}
    prefer-ip-address: true

新建一个controller,写一个访问接口。

@RestController
public class OrderController {

    @GetMapping("doOrder")
    public String doOrder() {
        System.out.println("有用户来下单了");
        return "下单成功!";
    }
}

然后启动用例,并进行测试。

 

 

2.4 其次创建一个consumer-user-service

 

 同样修改pom文件并在主类中增加配置。

配置文件增加内容如下:

server:
  port: 8082
spring:
  application:
    name: consumer-user-service
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka
  instance:
    instance-id: ${spring.application.name}:${server.port}
    prefer-ip-address: true

新建一个fegin文件夹,并在其中增加一个fegin接口:

 

 接口中代码如下:

//@FeignClient 声明是 feign 的调用
// value = "provider-order-service" value 后面的值必须和提供者的服务名一致
@FeignClient(value = "provider-order-service")
public interface UserOrderFegin {

    /**
     * 描述: 下单的方法 这里的路径必须和提供者的路径一致
     *
     * @param :
     * @return java.lang.String
     */
    @GetMapping("doOrder")
    String doOrder();

}

新建一个controller,并在其中增加一个接口。

@RestController
public class UserController {

    @Autowired
    private UserOrderFegin userOrderFeign;
    /**
     * 用户远程调用下单的接口
     *
     * @return
     */
    @GetMapping("userDoOrder")
    public String userDoOrder() {
        String result = userOrderFeign.doOrder();
        System.out.println(result);
        return result;
    }

}

记得还要在主类中增加一个注解,否则那个fegin接口自动注入时会报错。

@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients //标记 feign 的客户端
public class ConsumerUserServiceApplication {

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

}

然后我们启动这个项目并进行测试。

 

 

 

 说明已经成功访问到订单服务器了。

2.5 本次调用总结

 

原文地址:http://www.cnblogs.com/worthmove/p/16807285.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性