アノテーション型 ManagedThreadFactoryDefinition


  • @RepeatableSE(List.class)
    @RetentionSE(RUNTIMESE)
    @TargetSE(TYPESE)
    public @interface ManagedThreadFactoryDefinition

    name() 属性で指定された JNDI 名でコンテナーによって JNDI に登録される ManagedThreadFactory を定義します。

    アプリケーションコンポーネントは、Resource アノテーションの lookup 属性でこの JNDI 名を参照できます。

     @ManagedThreadFactoryDefinition(
         name = "java:global/concurrent/MyThreadFactory",
         context = "java:global/concurrent/MyThreadFactoryContext",
         priority = 4)
     @ContextServiceDefinition(
         name = "java:global/concurrent/MyThreadFactoryContext",
         propagated = APPLICATION)
      public class MyServlet extends HttpServlet {
        @Resource(lookup = "java:global/concurrent/MyThreadFactory",
                   name = "java:module/concurrent/env/MyThreadFactoryRef")
         ManagedThreadFactory myThreadFactory;
     

    デプロイ記述子のリソース環境参照は、同様に lookup-name を指定できます。

     <resource-env-ref>
        <resource-env-ref-name>java:module/env/concurrent/MyThreadFactoryRef</resource-env-ref-name>
        <resource-env-ref-type>jakarta.enterprise.concurrent.ManagedThreadFactory</resource-env-ref-type>
        <lookup-name>java:global/concurrent/MyThreadFactory</lookup-name>
     </resource-env-ref>
     
    <managed-thread-factory> デプロイ記述子要素を使用して ManagedThreadFactory を定義することもできます。元:
     <managed-thread-factory>
        <name>java:global/concurrent/MyThreadFactory</name>
        <context-service-ref>java:global/concurrent/MyThreadFactoryContext</context-service-ref>
        <priority>4</priority>
     </managed-thread-factory>
     
    managed-thread-factory と ManagedThreadFactoryDefinition が同じ名前の場合、それらの属性がマージされて単一の ManagedThreadFactory 定義が定義され、managed-thread-factory デプロイ記述子エントリで指定された各属性が、対応するアノテーションの属性よりも優先されます。
    導入:
    3.0
    • オプション要素のサマリー

      オプション要素  
      修飾子と型 オプションの要素 説明
      StringSEcontext
      このスレッドファクトリからスレッドにコンテキストを適用する方法を決定します。
      intpriority
      このスレッドファクトリによって作成されたスレッドの優先度。
    • 要素の詳細

      • name

        StringSE name
        ManagedThreadFactory インスタンスの JNDI 名。JNDI 名は、次のような有効な Jakarta EE 名前空間にある必要があります。
        • java: コンプ
        • java: モジュール
        • java: アプリ
        • java: グローバル
        戻り値:
        ManagedThreadFactory JNDI 名。
      • context

        StringSE context
        このスレッドファクトリからスレッドにコンテキストを適用する方法を決定します。

        この名前は、ContextServiceDefinition の名前、context-service デプロイ記述子要素の名前、または Jakarta EE のデフォルト ContextService インスタンス java:comp/DefaultContextService の JNDI 名にすることができます。

        ContextService の名前は、この ManagedThreadFactoryDefinition の名前よりも詳細であってはなりません。例: この ManagedThreadFactoryDefinition の名前が java:app にある場合、ContextService は java:app または java:global にある可能性がありますが、どのモジュールの ContextService 定義を使用する必要があるかが曖昧になる java:module にはありません。

        デフォルト値 java:comp/DefaultContextService は、Jakarta EE デフォルト ContextService の JNDI 名です。

        戻り値:
        コンテキストをキャプチャーして伝播またはクリアするための指示。
        デフォルト:
        "java:comp/DefaultContextService"
      • priority

        int priority

        このスレッドファクトリによって作成されたスレッドの優先度。

        デフォルトは Thread.NORM_PRIORITYSE です。

        戻り値:
        新しいスレッドの優先度。
        デフォルト:
        5