Spring > SpEL

「Spring/SpEL」の編集履歴(バックアップ)一覧はこちら

Spring/SpEL - (2012/02/23 (木) 14:11:13) の1つ前との変更点

追加された行は緑色になります。

削除された行は赤色になります。

-SpELは実行時のオブジェクトグラフのクエリ、操作に使える -SpELはSpringとは独立して使える -パーサ:SpelExpressionParser --parser.parseExpression(...) -パース結果の表現:Expression --exp.getValue() --exp.getValue(clazz) --exp.getValue(target):オブジェクトが変化する場合 --exp.getValue(context):オブジェクトが変化しない場合 --exp.getValue(target, context):targetが優先 -EvaluationContextインターフェース --実装:StandardEvaluationContext --パース対象のルートオブジェクトの指定 --ConstructorResolver,MethodResolver,PropertyAccessorを登録できる --SpElでは、必要におうじて型変換を行ってくれる。 ---ジェネリクスの型情報も解決しくれる。 -ビーン定義での利用 --#{ <expression string> } --#{ systemProperties['xxx'] } --#{ <bean参照> } --アノテーションでのビーンで意義ではフィールド/メソッド/パラメータに@Valueで指定(デフォルト値) -リテラル式 --String ---シングルクウォートで囲む --Date --Numeric --boolean --null --リスト ---{a,b,...} --配列 ---new int[4],new int[]{1,2,3},new int[4][5](多次元配列の初期化はできない) -プロパティ --ピリオド(.)でアクセス -配列、リスト --要素には[i]でアクセス -Map --あるキーxxxの値には['xxx']でアクセス -メソッドのinvoke --通常通りの書き方 --コンテキストを使う場合 parser.parseExpression("isMember('Mihajlo Pupin')").getValue(societyContext,Boolean.class); -Operators -- =,>,>=,<,<= -- instanceof -- matches -- lt,le,gt,ge,eq,ne -- div,mod -- and,or,not -- +-*/%~ -Assignment -Types:T() --Classインスタンスを見つける --staticメソッドを実行する --java.langパッケージ以外のクラスはパッケージも指定する -Constructors:new -Variables:#var --StandardEvaluationContext.setVariableで登録 --#this:現在評価しているオブジェクト --#root:評価対象のルートオブジェクト -Functions --ユーザ定義関数を作れる。:#function_nameで利用 --API StandardEvaluationContext.registerFunction(String name, Method m) -ビーン参照 --ビーン参照を解決するをBeanResolverオブジェクトを登録 context.setBeanResolver(...); --SpELでは@fooで参照する -Ternary Operator A ? B : C -Elvis Operator --a = (a != null ? a : b)の短縮 a?:b -Safe Navigation operator --NullPointerException の代わりにnullを返す a?.b -> null (a=nullの時) -Collection Selection --コレクションの要素を選択できる(リスト、マップ) list.?[selectionExpression] map.?[selectionExpression] (valueとかkeyとかつかえる) ^[selectionExpression] 最初の要素 $[selectionExpression] 最後の要素 -Collection Projection --コレクションの要素の一部の情報をつかって、新しいコレクションを得る(リスト、マップ) col.![projectionExpression]
-SpELは実行時のオブジェクトグラフのクエリ、操作に使える -SpELはSpringとは独立して使える -パーサ:SpelExpressionParser --parser.parseExpression(...) -パース結果の表現:Expression --exp.getValue() --exp.getValue(clazz) --exp.getValue(target):オブジェクトが変化する場合 --exp.getValue(context):オブジェクトが変化しない場合 --exp.getValue(target, context):targetが優先 -EvaluationContextインターフェース --実装:StandardEvaluationContext --パース対象のルートオブジェクトの指定 --ConstructorResolver,MethodResolver,PropertyAccessorを登録できる --SpElでは、必要におうじて型変換を行ってくれる。 ---ジェネリクスの型情報も解決しくれる。 -ビーン定義での利用 --#{ <expression string> } --#{ systemProperties['xxx'] } --#{ <bean参照> } --アノテーションでのビーンで意義ではフィールド/メソッド/パラメータに@Valueで指定(デフォルト値) -リテラル式 --String ---シングルクウォートで囲む --Date --Numeric --boolean --null --リスト ---{a,b,...} --配列 ---new int[4],new int[]{1,2,3},new int[4][5](多次元配列の初期化はできない) -プロパティ --ピリオド(.)でアクセス -配列、リスト --要素には[i]でアクセス -Map --あるキーxxxの値には['xxx']でアクセス -メソッドのinvoke --通常通りの書き方 --コンテキストを使う場合 parser.parseExpression("isMember('Mihajlo Pupin')").getValue(societyContext,Boolean.class); -Operators -- =,>,>=,<,<= -- instanceof -- matches -- lt,le,gt,ge,eq,ne -- div,mod -- and,or,not -- +-*/%~ -Assignment -Types:T() --Classインスタンスを見つける --staticメソッドを実行する --java.langパッケージ以外のクラスはパッケージも指定する -Constructors:new -Variables:#var --StandardEvaluationContext.setVariableで登録 --#this:現在評価しているオブジェクト --#root:評価対象のルートオブジェクト -Functions --ユーザ定義関数を作れる。:#function_nameで利用 --API StandardEvaluationContext.registerFunction(String name, Method m) -ビーン参照 --ビーン参照を解決するをBeanResolverオブジェクトを登録 context.setBeanResolver(...); --SpELでは@fooで参照する -Ternary Operator A ? B : C -Elvis Operator --a = (a != null ? a : b)の短縮 a?:b -Safe Navigation operator --NullPointerException の代わりにnullを返す a?.b -> null (a=nullの時) -Collection Selection --コレクションの要素を選択できる(リスト、マップ) list.?[selectionExpression] map.?[selectionExpression] (valueとかkeyとかつかえる) ^[selectionExpression] 最初の要素 $[selectionExpression] 最後の要素 -Collection Projection --コレクションの要素の一部の情報をつかって、新しいコレクションを得る(リスト、マップ) col.![projectionExpression] -Expression templating --式をテンプレートとして扱える。 --変数部分はParserContextクラスで区切り文字を指定する。 parser.parseException("<template>", parserContext)

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。