Springboot中Feign的使用方法
Feign是Webservice服务的客户端,创建接口+注解就可完成,实现简单客户端通过@EnableFeignClients开启Feign的支持功能@SpringBootApplication@EnableEurekaClient@EnableFeignClients@RestControllerpublic class TestApplication {public static void m
·
Feign实现服务调用
- 客户端通过@EnableFeignClients开启Feign的支持功能
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
@RestController
public class TestApplication {
public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
}
}
- 去对应的服务(product-service)下创建内部调用接口。
//对内部服务暴露的接口(返回数据就行)
@PostMapping("/insideUpdateProduct")
public Integer insideUpdateProduct(@RequestBody ProductInfo productInfo){
System.out.println(productInfo);
ProductForm productForm = new ProductForm();
BeanUtils.copyProperties(productInfo,productForm);
return productService.updateProduct(productForm).getStatus();
}
- 定义接口
在order-service服务中通过@FeignClient(“product-service”) 注解指定服务名来绑定服务
注:product-service与对应服务的yml文件中spring: application: name:后面名称一致。
再使用SpringMVC的注解@RequestMapping来绑定具体该服务提供的rest接口
@FeignClient(value = "product-service")
public interface OrderFeignClient {
//以抽象方法的形式表示调用
//feign底层会自动转化对象类型
//使用requestMapping注解来表示你要调用那个请求
@RequestMapping(value = "/shop-product/insideUpdateProduct",method = RequestMethod.POST)
Integer updateProduct(@RequestBody ProductInfo productInfo);
}
- 在order-service服务里的业务层调用即可
@RequestMapping(value = "/shop-product/insideUpdateProduct",method = RequestMethod.POST)
Integer updateProduct(@RequestBody ProductInfo productInfo);
更多推荐
已为社区贡献1条内容
所有评论(0)