Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

Locked History Actions

guice/Manual/UserGuide/Bindings/ProvidesMethods

@Providesメソッド

「オブジェクトを生成する」といったコードが必要な場合には、@Providesメソッドを使う。 このメソッドはモジュール内で定義され@Providesアノテーションを持つことが必要である。 メソッドの返り値はバインディングされたタイプである。 インジェクタは、このタイプのインスタンスが必要になると、そのメソッドを呼び出す。

public class BillingModule extends AbstractModule {
  @Override
  protected void configure() {
    ...
  }

  @Provides
  TransactionLog provideTransactionLog() {
    DatabaseTransactionLog transactionLog = new DatabaseTransactionLog();
    transactionLog.setJdbcUrl("jdbc:mysql://localhost/pizza");
    transactionLog.setThreadPoolSize(30);
    return transactionLog;
  }
}

@Providesメソッドに@PayPalや@Named("Checkout")のようなアノテーションがつけられている場合は、Guiceはそのタイプにバインドする。 依存性はメソッドのパラメータとして与えられる。 インジェクタはメソッド起動前にそれぞれのバインディングを使う。

  @Provides @PayPal
  CreditCardProcessor providePayPalCreditCardProcessor(
      @Named("PayPal API key") String apiKey) {
    PayPalCreditCardProcessor processor = new PayPalCreditCardProcessor();
    processor.setApiKey(apiKey);
    return processor;
  }