Есть способы сделать это, но я думаю, что вы говорите довольно просто. Как упоминалось в @ 123, это вопрос создания и внедрения bean-компонентов. Мета-пример с использованием аннотаций:
package my.scanned.package
// ...
@Component
class ApiClient {
@Autowired
HttpClient httpClient;
// contructor methods etc
}
Тогда ваш Http-клиент похож:
package my.scanned.package
// ...
@Component
class HttpClient {
// contructor methods etc
}
Затем используйте их в чем-то вроде @Service
:
package my.scanned.package
// ...
@Service
class FooService {
@Autowired
ApiClient apiClient;
Response callApi() {
return apiClient.doSomething()
}
}
Затем опять же, в тестах будет легко просто имитировать эти бобы.