# retrofit2-spring
**Repository Path**: archx/retrofit2-spring
## Basic Information
- **Project Name**: retrofit2-spring
- **Description**: 自动扫描 RetrofitClient 接口并注入 Spring 上下文中
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 1
- **Created**: 2020-07-02
- **Last Updated**: 2021-10-21
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Retrofit2 Spring
> 自动扫描 `RetrofitClient` 接口并注入 `Spring` 上下文中
构建后引入依赖
```xml
retrofit2.spring
retrofit2-spring
1.0.0
```
配置扫描
```java
@Configuration
@EnableRetrofitClients(scanPackages = "com.example.api")
public class WebConfiguration {
@Bean
public Retrofit buildRetrofit() {
return new Retrofit.Builder()
.baseUrl("http://127.0.0.1:8080")
.client(client.build())
.addConverterFactory(JacksonConverterFactory.create(objectMapper))
.build();
}
}
```
定义接口
```java
@RetrofitClient
public interface MyService {
@GET("/api/token")
Call getToken(@Query("clientId") String id, @Query("clientSecret") String secret);
}
```
使用时注入
```java
@SpringBootTest
public class ExampleApplicationTests {
@Autowired
private MyService myService;
}
```
参考资料
- [Retrofit](https://square.github.io/retrofit/)
- [动态注册 Bean 到 Spring 上下文中 —— 基于 FeignClient 源码的阅读](https://www.jianshu.com/p/74e0fa334731)
- [创建动态代理对象 bean,并动态注入到 spring 容器中](https://blog.csdn.net/lichuangcsdn/article/details/89694363)