Передайте учетные данные для каждого запроса в качестве параметров клиенту AWS с помощью Dagger2 - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь использовать 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;
    }

}
...