列挙型クラス SpelCompilerMode

java.lang.ObjectSE
java.lang.EnumSE<SpelCompilerMode>
org.springframework.expression.spel.SpelCompilerMode
実装されたすべてのインターフェース:
SerializableSEComparableSE<SpelCompilerMode>ConstableSE

public enum SpelCompilerMode extends EnumSE<SpelCompilerMode>
式を評価するときに使用できるコンパイラーの可能な構成設定をキャプチャーします。

Spring は、SpEL 式の基本コンパイラーを提供します。式は通常解釈され、評価中に多くの動的な柔軟性を提供しますが、最適なパフォーマンスは提供されません。式を時々使用する場合はこれで問題ありませんが、Spring Integration などの他のコンポーネントで使用する場合は、パフォーマンスが非常に重要になる可能性があり、ダイナミズムは実際には必要ありません。

SpEL コンパイラーは、このニーズに対応することを目的としています。評価中、コンパイラーは実行時に式の動作を具体化する Java クラスを生成し、そのクラスを使用して式の評価を大幅に高速化します。式の周囲に型指定がないため、コンパイラーはコンパイルを実行するときに式の解釈評価中に収集された情報を使用します。例: SpEL は式からのみプロパティ参照の型を認識しませんが、最初の解釈評価中にそれが何であるかを検出します。もちろん、このような派生情報に基づいてコンパイルを行うと、さまざまな式要素の型が時間の経過とともに変化した場合に後で問題が発生する可能性があります。このため、コンパイルは、繰り返し評価しても型情報が変更されない式に最適です。

導入:
4.1
作成者:
Andy Clement, Sam Brannen
  • ネストされたクラスのサマリー

    クラス java.lang.EnumSE から継承されたネストクラス / インターフェース

    Enum.EnumDescSE<ESE extends EnumSE<ESE>>
  • 列挙定数のサマリー

    列挙型定数
    列挙定数
    説明
    即時モードでは、式は通常、最初の解釈された評価の後に、できるだけ早くコンパイルされます。
    混合モードでは、式の評価は時間の経過とともに解釈コンパイルの間で自動的に切り替わります。
    コンパイラーはオフになり、すべての式は解釈モードで評価されます。
  • 方法の概要

    修飾子と型
    メソッド
    説明
    指定された名前でこのクラスの列挙型定数を返します。
    この列挙型クラスの定数を含む配列を、宣言されている順序で返します。

    クラス java.lang.EnumSE から継承されたメソッド

    clone, compareToSE, describeConstable, equalsSE, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOfSE

    クラス java.lang.ObjectSE から継承されたメソッド

    getClass, notify, notifyAll, wait, waitSE, waitSE
  • 列挙型定数の詳細

    • OFF

      public static final SpelCompilerMode OFF
      コンパイラーはオフになり、すべての式は解釈モードで評価されます。

      これがデフォルトです。

    • IMMEDIATE

      public static final SpelCompilerMode IMMEDIATE
      即時モードでは、式は通常、最初の解釈された評価の後に、できるだけ早くコンパイルされます。

      コンパイルされた式の評価が失敗した場合 (たとえば、型の変更により)、式評価の呼び出し元は例外を受け取ります。

      さまざまな式要素の型が時間の経過とともに変化する場合は、MIXED モードに切り替えるか、コンパイラーをオフにすることを検討してください。

    • MIXED

      public static final SpelCompilerMode MIXED
      混合モードでは、式の評価は時間の経過とともに解釈コンパイルの間で自動的に切り替わります。

      何回かの解釈実行が成功すると、式はコンパイルされます。コンパイルされた式の評価が失敗した場合 (たとえば、型の変更により)、その失敗は内部でキャッチされ、システムは指定された式に対して解釈モードに戻ります。基本的に、呼び出し元が IMMEDIATE モードで受け取る例外は、代わりに内部で処理されます。しばらくすると、コンパイラーは別のコンパイル済みフォームを生成し、それに切り替える場合があります。解釈モードとコンパイルモードの切り替えサイクルは、システムが試行を続ける意味がないと判断するまで継続されます。たとえば、特定の失敗しきい値に達した場合、システムは指定された式に対して永続的に解釈モードに切り替わります。

  • メソッドの詳細

    • values

      public static SpelCompilerMode[] values()
      この列挙型クラスの定数を含む配列を、宣言されている順序で返します。
      戻り値:
      この列挙型クラスの定数を宣言された順序で含む配列
    • valueOf

      public static SpelCompilerMode valueOf(StringSE name)
      指定された名前でこのクラスの列挙型定数を返します。文字列は、このクラスで列挙型定数を宣言するために使用される識別子と正確に一致する必要があります。(余分な空白文字は許可されません。)
      パラメーター:
      name - 返される列挙定数の名前。
      戻り値:
      指定された名前の列挙定数
      例外:
      IllegalArgumentExceptionSE - この列挙型クラスに指定された名前の定数がない場合
      NullPointerExceptionSE - 引数が null の場合