【工具框架】SpringBoot中关于Retrofit的基础操作

一、使用场景

排除分布式环境中远程调用的需求,可能会出现跨产品跨机组的数据投放需求。
比如:

  • A公司通过数据接口向B公司送传某些业务数据
  • 某公司业务事业群向内容事业群投放相关数据

总结下来就是,通过访问既定接口,传递数据。类似Android请求后台接口的形式,在服务器和服务器之间进行数据交互。

二、技术选型

Java后台环境中,关于网络请求有很多种方式,比较常见的有:

  • RestTemplate
  • Okhttp
  • HttpConnection
  • HttpClient
  • Retrofit

其中RestTemplate比较常见,后台植入的三方SDK使用HttpClient比较常见。Retrofit实际上是Android在http协议实践中比较常用的主流选型,目前后台在上述场景中也已经有了一些实践案例。
近期项目中,产品给内容中心以及合作渠道的数据回传,就使用了Retrofit,暂时没有遇到什么问题。

三、SpringBoot植入Retrofit的过程

3.1 配置依赖

SpringBoot依赖信息如下:

 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.5</version>
        <relativePath/> <!-- lookup parent from repository -->
 </parent>

Retrofit依赖信息如下:

   <dependency>
            <groupId>com.github.lianjiatech</groupId>
            <artifactId>retrofit-spring-boot-starter</artifactId>
            <version>2.0.2</version>
  </dependency>

依赖相关细节和内部依赖关系可以通过mvnrepository了解细节。
在mvnrepository中,分别搜索Spring Bootretrofit start
需要注意的是Jcenter仓库目前已经停止维护了,所以建议相关资源在mvnrepository中检索。

3.2 基础资源和扫描

Retrofit中,主机地址和接口信息,入参出参都是在接口文件中描述的,演示内容如下:

@RetrofitClient(baseUrl = "http://xxxxx.com")
public interface FishComesBackApi {
    
    @POST("/api/abc/def")
    ResponseResult fishFreeComesBack(@Body InParameter parameter);
    
    @POST("/api/abc/def/test")
    ResponseResult fishFreeComesBackTest(@Body InFreeParameter parameter);

}

上述代码中,需要关注的点如下:

  • 首先,内容以接口形式描述
  • 其次,@RetrofitClient注解描述主机地址
  • 其次,通过@Post描述请求方式
  • 最后,通过@Body描述请求体信息

上述定义的接口,在Android环境下,内部通过动态代理进行对象构建,在Spring中,需要在入口位置,明确描述扫描,才可以触发其实例构建,配置信息如下:

@SpringBootApplication
@MapperScan("com.xxx.ddd")
@RetrofitScan("com.xxx.ddd")
public class BookBackApplication {

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

}

上述代码中,只需要关注一点即可,就是@RetrofitScan这个注解,指定的内容是定义的接口文件FishComesBackApi所在的包的位置。

3.3 调用

在使用过程中,可能存在全局管控的一些策略,关于全局管控稍后详细描述,暂不做描述,接下来主要探讨使用。演示代码如下:

@Resource
private FishComesBackApi  fishComesBackApi;
// 业务代码调用
public void  m1(){
ResponseResult result = fishComesBackApi.fishFreeComesBackTest(parameter参数);
}

至此,在SpringBoot环境中使用Retrofit的基础操作就告一段落了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值