Springcloud--openFeign实现服务调用

1.什么是OpenFeign

OpenFeignSpring Cloud提供的一个声明式的伪Http客户端, 它使得调用远程服务就像调用本地服务一样简单, 只需要创建一个接口并添加一个注解即可。

Nacos很好的兼容了Feign Feign负载均衡默认集成了 Ribbon, 所以在Nacos下使用Fegin默认就实现了负载均衡的效果。

2.Feign的使用

2.1加入Feign的依赖



    org.springframework.cloud
    spring-cloud-starter-openfeign

2.2在主启动类上加入开启feign的注解

@SpringBootApplication
@EnableFeignClients
public class OrderApp {
    public static void main(String[] args) {
        SpringApplication.run(OrderApp.class,args);
    }

    @Bean
    //ribbon借助RestTemplate完成负载均衡的调用
    @LoadBalanced
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

2.3创建feign的接口

//被调用的微服务名称 springcloud openfeign---代理实现类---url:http://springcloud-product/product/findById/{pid}
@FeignClient(value = "springcloud-product",fallbackFactory = ProductFeignFactory.class)
public interface ProductFeign {

    //调用微服务接口方法:必须和微服务提供者的方法参数必须一致
    @GetMapping("/product/findById/{pid}")
    public Product selectProduct(@PathVariable Integer pid);
}

2.4修改OrderController的代码

    @Autowired
    private ProductFeign productFeign;

    
        Product product = productFeign.selectProduct(pid);
        System.out.println(product);
        System.out.println("~~~~~~~~远程查询的商品结果~~~~~~~~"+product);

        order.setPid(product.getPid());
        order.setPname(product.getPname());
        order.setPprice(product.getPprice());
        orderMapper.insert(order);
        return product;
    }
}

2.5重启微服务,查看效果

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