网站建设中的图片,网站设计高端网站制作,国家高新技术企业证书,企业网站开发数据库设计JAVA项目中如何实现接口调用#xff1f;HttpclientHttpclient是Apache Jakarta Common下的子项目#xff0c;用来提供高效的、最新的、功能丰富的支持Http协议的客户端编程工具包#xff0c;并且它支持HTTP协议最新版本和建议。HttpClient相比传统JDK自带的URL ConnectionHttpclientHttpclient是Apache Jakarta Common下的子项目用来提供高效的、最新的、功能丰富的支持Http协议的客户端编程工具包并且它支持HTTP协议最新版本和建议。HttpClient相比传统JDK自带的URL Connection提升了易用性和灵活性是客户端发送HTTP请求变得容易提高了开发的效率。Okhttp一个处理网络请求的开源项目是安卓端最火的轻量级框架由Square公司贡献用于代替HttpUrlConnection和Apache HttpClient。OkHttp拥有简洁的API、高校的性能并支持多种协议HTTP/2和SPDYHttpURLConnectionHttpURLConnection是Java的标准类它继承自URLConnection可用于向指定网站发送GET请求、POST请求。HttpURLConection使用比较复杂不想HttpClient那样容易使用。RestTemplate WbClientRestTemplate是Spring提供的用于访问Rest服务的客户端RestTemplate提供了多种便捷访问远程HTTP服务的方法能够大大提高客户端的编写效率。上面介绍的是最常见的几种调用接口的方法我们下面介绍的方法比上面的更简单、方便它就是Feign。什么是FeignFeign是Nexflix开发的声明式、模板化的HTTP客户端其灵感来自Retrofit、JAXRS-2.0以及WebSocket。Feign可帮助我们更加便捷、优雅地调用HTTP API。优势Feign可以做到 开发者完全感知不到这是远程方法更感知不到这是个HTTP请求。它像Dubbo一样consumer直接调用接口方法调用provider而不是要通过常规的HttpClient构造请求解析返回数据。它解决了让开发者调用远程接口就跟调用本地方法一样无需关注与远程的交互细节更无需关注分布式环境开发。简单地说就是A服务的Service接口去调用别的B服务的Controller接口Spring Cloud Alibaba快速整合Opne Feign复制order-nacos项目修改项目名为order-openfeign修改其它配置。引入依赖新建Feign接口编写订单Controller此时stockFeignService下面有一条红色的波浪线需要在启动类中配置上开启Feign的注解最终项目结构访问订单接口日志配置1.新建product-nacos子项目controllerapplication.yml最终长这样在上文中创建的order-openfeign项目中新建配置类新建feign接口更新Controllerapplication.yml添加配置启动订单服务、库存服务和商品服务,访问订单接口日志信息也打印到了控制台契约配置 Spring Cloud在Feign的基础上做了扩展使用Spring MVC的疏解来完成Feign的功能。原生的Feign是不支持Spring MVC注解的如果你想在Spring Cloud中使用原生的注解方式来定义客户端也是可以的通过配置契约来改变这个配置Spring Cloud中默认的是SpringMvcContract。 Spring Cloud 1早期版本就是用的原生Feign随着netflix的停更替换成了Open feign。修改契约配置支持Feign原生的注解$\color{#FF0000}{注意修改契约配置后stock-service不再支持springmvc的注解需要使用Feign原生的注解}OrderFeignService中配置使用Feign原生的注解补充也可以通过yml方式配置契约超时时间设置通过 Options 可以配置连接超时时间和读取超时时间Options 得第一个参数是连接的超时时间ms默认值是2s第二个是请求处理的超时时间ms默认是5s。全局配置yml中配置