列挙型クラス SpelCompilerMode
- 実装されたすべてのインターフェース:
SerializableSE
、ComparableSE<SpelCompilerMode>
、ConstableSE
Spring は、SpEL 式の基本コンパイラーを提供します。式は通常解釈され、評価中に多くの動的な柔軟性を提供しますが、最適なパフォーマンスは提供されません。式を時々使用する場合はこれで問題ありませんが、Spring Integration などの他のコンポーネントで使用する場合は、パフォーマンスが非常に重要になる可能性があり、ダイナミズムは実際には必要ありません。
SpEL コンパイラーは、このニーズに対応することを目的としています。評価中、コンパイラーは実行時に式の動作を具体化する Java クラスを生成し、そのクラスを使用して式の評価を大幅に高速化します。式の周囲に型指定がないため、コンパイラーはコンパイルを実行するときに式の解釈評価中に収集された情報を使用します。例: SpEL は式からのみプロパティ参照の型を認識しませんが、最初の解釈評価中にそれが何であるかを検出します。もちろん、このような派生情報に基づいてコンパイルを行うと、さまざまな式要素の型が時間の経過とともに変化した場合に後で問題が発生する可能性があります。このため、コンパイルは、繰り返し評価しても型情報が変更されない式に最適です。
- 導入:
- 4.1
- 作成者:
- Andy Clement, Sam Brannen
ネストされたクラスのサマリー
クラス java.lang.EnumSE から継承されたネストクラス / インターフェース
Enum.EnumDescSE<ESE extends EnumSE<ESE>>
列挙定数のサマリー
列挙型定数方法の概要
修飾子と型メソッド説明static SpelCompilerMode
指定された名前でこのクラスの列挙型定数を返します。static SpelCompilerMode[]
values()
この列挙型クラスの定数を含む配列を、宣言されている順序で返します。クラス java.lang.EnumSE から継承されたメソッド
clone, compareToSE, describeConstable, equalsSE, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOfSE
列挙型定数の詳細
OFF
コンパイラーはオフになり、すべての式は解釈モードで評価されます。これがデフォルトです。
IMMEDIATE
MIXED
混合モードでは、式の評価は時間の経過とともに解釈とコンパイルの間で自動的に切り替わります。何回かの解釈実行が成功すると、式はコンパイルされます。コンパイルされた式の評価が失敗した場合 (たとえば、型の変更により)、その失敗は内部でキャッチされ、システムは指定された式に対して解釈モードに戻ります。基本的に、呼び出し元が
IMMEDIATE
モードで受け取る例外は、代わりに内部で処理されます。しばらくすると、コンパイラーは別のコンパイル済みフォームを生成し、それに切り替える場合があります。解釈モードとコンパイルモードの切り替えサイクルは、システムが試行を続ける意味がないと判断するまで継続されます。たとえば、特定の失敗しきい値に達した場合、システムは指定された式に対して永続的に解釈モードに切り替わります。
メソッドの詳細
values
この列挙型クラスの定数を含む配列を、宣言されている順序で返します。- 戻り値:
- この列挙型クラスの定数を宣言された順序で含む配列
valueOf
指定された名前でこのクラスの列挙型定数を返します。文字列は、このクラスで列挙型定数を宣言するために使用される識別子と正確に一致する必要があります。(余分な空白文字は許可されません。)- パラメーター:
name
- 返される列挙定数の名前。- 戻り値:
- 指定された名前の列挙定数
- 例外:
IllegalArgumentExceptionSE
- この列挙型クラスに指定された名前の定数がない場合NullPointerExceptionSE
- 引数が null の場合