0
私が持っている:CDI:二つの生産者の生産に
@Produces
public IPaymentGateway getStripePaymentGateway(@StripeApiKey final String apiKey) {
return new StripeFluentAPI(apiKey);
}
@Produces
public IPaymentGateway getStripePaymentGatewayProxy() {
IPaymentGateway gateway = mock(IPaymentGateway.class);
ICustomer customer = mock(ICustomer.class);
when(gateway.customer()).thenReturn(customer);
return gateway;
}
最初のものは私のIPaymentGateway
の実際の実装を返します。反対側では、2番目のプロキシはプロキシされたオブジェクトを返します。私がどのように選択するかを知りたいのですが、そう
@ApplicationScoped
public class ConfigurationResources {
public boolean isPaymentGatewayEnabled() {
return paymentGatewayEnabled;
}
}
または他の生産者はisPaymentGatewayEnabled
値に従って:
ために、私は、ゲートウェイを有効または無効にする必要があるかどうかを知るために@ApplicationScoped
オブジェクトを使用しています。
「IPaymentGateway」を生成するメソッドを1つ用意し、このメソッドのパラメータとして「ConfigurationResources」を追加することができます。次に、 "本物の" beanか、isPaymentGatewayEnabledの値に依存している模様を作ることができます。 – Rouliboy