クラス SeContainerInitializer


  • public abstract class SeContainerInitializer
    extends ObjectSE
    JavaSE 用の CDI コンテナー初期化子。インスタンスは、newInstance() 静的メソッドを呼び出すことで取得できます。

    一般的な使用箇所は次のようになります。

     SeContainer container = SeContainerInitializer.newInstance().initialize();
     container.select(Foo.class).get();
     container.close();
     

    SeContainer インターフェースは AutoCloseable を実装しているため、次のようになります。

     try (SeContainer container = SeContainerInitializer.newInstance().initialize()) {
         container.select(Foo.class).get();
     }
     

    デフォルトでは、検出が有効になっているため、検出されたすべての Bean アーカイブからのすべての Bean が考慮されます。ただし、「合成」Bean アーカイブ、Bean クラスとイネーブルメントのセットをそれぞれ定義することは可能です。

     SeContainer container = SeContainerInitializer.newInstance().addBeanClasses(Foo.class, Bar.class).selectAlternatives(Bar.class).initialize());
     

    さらに、検出を完全に無効にして、「合成」Bean アーカイブのみが考慮されるようにすることもできます。

     SeContainer container = SeContainerInitializer.newInstance().disableDiscovery().addBeanClasses(Foo.class, Bar.class).initialize());
     

    同様に、ビルダーを使用して、インターセプター、デコレーター、拡張機能、実装固有のオプションを明示的に宣言することができます。

     SeContainerInitializer containerInitializer = SeContainerInitializer.newInstance()
             .disableDiscovery()
             .addPackages(Main.class, Utils.class)
             .enableInterceptors(TransactionalInterceptor.class)
             .addProperty("property", true);
     SeContainer container = container.initialize();
     

    Java SE で CDI のサポートを提供するために、CDI Lite 実装は必要ありません。

    導入:
    2.0
    作成者:
    Antoine Sabot-Durand, Martin Kouba, John D. Ament
    • コンストラクターの詳細

      • SeContainerInitializer

        public SeContainerInitializer()
    • メソッドの詳細

      • newInstance

        public static SeContainerInitializer newInstance()
        SeContainerInitializer のインスタンスを返します。各呼び出しは新しいインスタンスを返します
        戻り値:
        新しい SeContainerInitializer インスタンス。
        例外:
        IllegalStateExceptionSE - Java EE コンテナーで呼び出された場合
      • addBeanClasses

        public abstract SeContainerInitializer addBeanClasses​(ClassSE<?>... classes)
        提供された Bean クラスを合成 Bean アーカイブに追加します。
        パラメーター:
        classes - 合成 Bean アーカイブに追加するクラス
        戻り値:
        自己
      • addPackages

        public abstract SeContainerInitializer addPackages​(ClassSE<?>... packageClasses)
        指定されたクラスのパッケージのすべてのクラスが、合成 Bean アーカイブの Bean クラスのセットに追加されます。

        スキャンの可能性は限られていることに注意してください。ファイルシステムのディレクトリと jar ファイルのみがサポートされます。

        スキャンは、SE のパフォーマンスにも悪影響を与える可能性があります。

        パラメーター:
        packageClasses - パッケージが合成 Bean アーカイブに追加されるクラス
        戻り値:
        自己
      • addPackages

        public abstract SeContainerInitializer addPackages​(boolean scanRecursively,
                                                           ClassSE<?>... packageClasses)
        指定されたクラスのパッケージがスキャンされ、見つかったクラスが合成 Bean アーカイブの Bean クラスのセットに追加されます。*

        スキャンの可能性は限られていることに注意してください。ファイルシステムのディレクトリと jar ファイルのみがサポートされます。

        スキャンは、SE のパフォーマンスにも悪影響を与える可能性があります。

        パラメーター:
        scanRecursively - サブパッケージをスキャンするかどうか
        packageClasses - パッケージがスキャンされるクラス
        戻り値:
        自己
      • addPackages

        public abstract SeContainerInitializer addPackages​(PackageSE... packages)
        指定されたパッケージのすべてのクラスが、合成 Bean アーカイブの Bean クラスのセットに追加されます。

        スキャンの可能性は限られていることに注意してください。ファイルシステムのディレクトリと jar ファイルのみがサポートされます。

        スキャンは、SE のパフォーマンスにも悪影響を与える可能性があります。

        パラメーター:
        packages - 合成 Bean アーカイブに追加されるパッケージ
        戻り値:
        自己
      • addPackages

        public abstract SeContainerInitializer addPackages​(boolean scanRecursively,
                                                           PackageSE... packages)
        指定されたパッケージのすべてのクラスが、合成 Bean アーカイブの Bean クラスのセットに追加されます。

        スキャンの可能性は限られていることに注意してください。ファイルシステムのディレクトリと jar ファイルのみがサポートされます。

        スキャンは、SE のパフォーマンスにも悪影響を与える可能性があります。

        パラメーター:
        scanRecursively - サブパッケージをスキャンするかどうか
        packages - 合成 Bean アーカイブに追加されるパッケージ
        戻り値:
        自己
      • addExtensions

        public abstract SeContainerInitializer addExtensions​(Extension... extensions)
        拡張機能のセットに拡張機能を追加します。
        パラメーター:
        extensions - コンテナーで使用する拡張機能
        戻り値:
        自己
      • addExtensions

        public abstract SeContainerInitializer addExtensions​(ClassSE<? extends Extension>... extensions)
        拡張機能のセットに拡張機能を追加します。
        パラメーター:
        extensions - コンテナーで使用する拡張クラス
        戻り値:
        自己
      • enableInterceptors

        public abstract SeContainerInitializer enableInterceptors​(ClassSE<?>... interceptorClasses)
        合成 Bean アーカイブで有効なインターセプターのリストにインターセプタークラスを追加します。

        このメソッドは、合成 Bean アーカイブの Bean クラスのセットにクラスを追加しません。

        パラメーター:
        interceptorClasses - 有効にするインターセプターのクラス。
        戻り値:
        自己
      • enableDecorators

        public abstract SeContainerInitializer enableDecorators​(ClassSE<?>... decoratorClasses)
        合成 Bean アーカイブで有効なデコレータのリストにデコレータクラスを追加します。

        このメソッドは、合成 Bean アーカイブの Bean クラスのセットにクラスを追加しません。

        パラメーター:
        decoratorClasses - 有効にするデコレータのクラス。
        戻り値:
        自己
      • selectAlternatives

        public abstract SeContainerInitializer selectAlternatives​(ClassSE<?>... alternativeClasses)
        合成 Bean アーカイブの選択された代替のリストに代替クラスを追加します。

        このメソッドは、合成 Bean アーカイブの Bean クラスのセットにクラスを追加しません。

        パラメーター:
        alternativeClasses - 選択する選択肢のクラス
        戻り値:
        自己
      • selectAlternativeStereotypes

        public abstract SeContainerInitializer selectAlternativeStereotypes​(ClassSE<? extends AnnotationSE>... alternativeStereotypeClasses)
        合成 Bean アーカイブ用に選択された代替ステレオタイプのリストに代替ステレオタイプクラスを追加します。

        このメソッドは、合成 Bean アーカイブの Bean クラスのセットにクラスを追加しません。

        パラメーター:
        alternativeStereotypeClasses - 選択する代替ステレオタイプ
        戻り値:
        自己
      • addProperty

        public abstract SeContainerInitializer addProperty​(StringSE key,
                                                           ObjectSE value)
        コンテナーに構成プロパティを追加します
        パラメーター:
        key - プロパティ名
        value - プロパティ値
        戻り値:
        自己
      • setProperties

        public abstract SeContainerInitializer setProperties​(MapSE<StringSE,​ObjectSE> properties)
        すべての構成プロパティを設定します。以前のプロパティセットを消去します
        パラメーター:
        properties - 追加するプロパティを含むマップ
        戻り値:
        自己
      • disableDiscovery

        public abstract SeContainerInitializer disableDiscovery()
        デフォルトでは、検出は有効になっています。ただし、検出を完全に無効にして、「合成」Bean アーカイブのみが考慮されるようにすることは可能です。
        戻り値:
        自己
      • setClassLoader

        public abstract SeContainerInitializer setClassLoader​(ClassLoaderSE classLoader)
        ClassLoaderSE を設定します。スキャンが有効になっている場合、指定された ClassLoaderSE は Bean アーカイブを自動的にスキャンします。
        パラメーター:
        classLoader - 使用するクラスローダー
        戻り値:
        自己
      • initialize

        public abstract SeContainer initialize()

        CDI SeContainerInitializer を初期化します。

        アプリケーションサーバー内で呼び出すことはできません。

        戻り値:
        コンテナーに関連付けられた SeContainer インスタンス。
        例外:
        UnsupportedOperationExceptionSE - アプリケーションサーバー内で呼び出された場合