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/BuiltinBindings

ビルトインバインディング

明示的あるいはその場のバインディングに加え、インジェクタは自動的にバインディングを付加する。 インジェクタのみがこれらのバインディングを使用可能なため、コードからこれを実行しようとするとエラーになる。

ロガー

Guiceはjava.util.logging.Loggerに対するビルトインバインディングを持つ、 ボイラープレートコードを避けることができるように。 このバインディングはLoggerに対して、それが注入されるクラスの名前を自動的にセットする。

@Singleton
public class ConsoleTransactionLog implements TransactionLog {

  private final Logger logger;

  @Inject
  public ConsoleTransactionLog(Logger logger) {
    this.logger = logger;
  }

  public void logConnectException(UnreachableException e) {
    /* the message is logged to the "ConsoleTransacitonLog" logger */
    logger.warning("Connect exception failed, " + e.getMessage());
  }

インジェクタ

フレームワークコードでは、実行時になるまでそのような型が必要になるのかわからない場合がある。 このような稀なケースでは、インジェクタ自体を注入すべきである。 インジェクタを注入するコードでは、(コード上では)何に依存しているのかわからないため、このようなアプローチは控えめにすべきである。

タイプリテラル

Guiceは注入するすべてについて、完全なタイプ情報を持っている。 パラメトライズタイプを注入する場合には、TypeLiteral<T>を使って、注入タイプを決めることができる。

ステージ

Guiceはstage enumを使って、開発フェーズと製品フェーズを区別する。