Я пытаюсь использовать Dagger 2 для управления зависимостями.Мне нужно получать и передавать учетные данные AWS для каждого полученного запроса, но я не могу найти чистый способ сделать это.
Исходя из того, что я читал, идея объединяет «newables» с «injectables».
Я хотел бы добиться чего-то подобного, если это возможно (упрощенный код):
public static void main(String[] args) {
Credentials credentialsOne = new Credentials("username1", "password1");
DaggerAWSComponent.builder().withCredentials(credentialsOne).build();
Credentials credentialsTwo = new Credentials("username2", "password2");
DaggerAWSComponent.builder().withCredentials(credentialsTwo).build();
}
@Component(modules = Module.class)
interface Component {
UseCase useCase();
}
@Module
class Module {
@Provides
static Organizations provideOrganizations(Credentials credentials) {
return Builder.standard().withCredentials(credentials).build();
}
}
public class UseCase {
private final AWSOrganizations awsOrganizations;
@Inject
public UseCase(final AWSOrganizations awsOrganizations) {
this.awsOrganizations = awsOrganizations;
}
}