# 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)