Привязать притворную цель к обману

Есть ли способ привязать притворную цель к обману? Мой вариант использования выглядит следующим образом:

  1. У меня есть служба, которая может быть запущена в той же JVM или как отдельная служба.
  2. если служба запущена в той же JVM, я свяжу ее с помощью Guice.
  3. если служба запускается за пределами jvm, я хочу связать службу с помощью fiegn и заставить guice сделать то же самое.

1 ответ

Я решил это с помощью Provider Реализация в Google Guice. Вот образец

public class Main {

public static AccountService get() {
    return Feign.builder()
            .contract(new JAXRSContract())
            .decoder(new GsonDecoder())
            .target(AccountService.class, "http://localhost:9090");

}

static class RestClientProvider implements Provider<AccountService> {


    RestClientProvider() {
    }

    @Override
    public AccountService get() {
        return Main.get();
    }

}


static class AppInjector extends AbstractModule {
    @Override
    protected void configure() {
        Provider<AccountService> prov = new RestClientProvider();
        bind(AccountService.class).toProvider(prov);
    }
}

public static void main (String... args) {

    Injector inj = Guice.createInjector(new AppInjector());
    AccountService ac = inj.getInstance(AccountService.class);

    Account a = ac.getAccountByName("Mihir");
    System.out.println(a.getName());

}

}

Другие вопросы по тегам