問題タブ [spring-el]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Spring Expression Language (SpEL) の Elvis 演算子
SpEL で elvis 演算子を使用すると、奇妙な動作が見られます。elvis 式を括弧 "()" で囲まないと、elvis 演算子の結果が返され、残りの式は無視されます。以下の動作を示すサンプルコード:
出力:
奇妙な部分は、値がハッシュマップにない場合 (つまり、facts.put 行にコメントを付ける)、elvis 演算子が正常に動作しているように見え、両方の式が期待どおりに false を返すことです。
(spring-framework-3.0.5 を使用)
java - Spring: ID で名前空間を使用する Bean が SPeL と競合する
Dhanji は、依存性注入に関する著書の中で、Spring Bean に名前を付けるときに名前空間を使用することを推奨しています。
本からの引用:
また、「set.BinaryTree」や「set.HashTable」など、「binaryTreeSet」や「hashTableSet」よりも読みやすく理解しやすい名前空間の使用を強くお勧めします。名前空間は、キー スペースのより洗練された自然な命名法であり、グループ化された大文字の単語の文字列よりもはるかに読みやすくなっています。
今ではそれは合理的に聞こえます。しかし、SPeLの時点で、競合が発生します。Ozzy は Black Sabbath で演奏していたので、すべてのバンド メンバーに対して、次のようにbs名前空間を Bean 名に使用します。
現在、SpEL を使用して曲名に値を挿入する予定の Black Sabbath のメンバーがもう 1 人います。Ozzy が再生する曲は、私の新しいメンバー (Tony としましょう) も再生します。
}
今、私が得るものは...
今何?「これは Bean 名であり、これをプロパティとして評価しない」というテキストをエスケープする方法はありますか?
ノート:
- コード サンプルは、Dhanji の本に触発されています。
- 告白します-SpELのドキュメント全体を読んでいません。おそらく解決策ははるかに簡単です
spring-transactions - @transactional プロパティをアノテーションに挿入できますか?
Spring コンテキスト ファイルで定義されたサービスがあり、EL を使用してトランザクション プロパティを注入しています。
@Service
アノテーションを使用して定義されたサービスがいくつかあります。xml ファイルで行うのと同様の方法でプロパティを挿入することは可能ですか? また、構文はどのようになりますか? すなわち:
xml - Spring Expression Language の Eclipse フォーマット
Eclipse 3.7 で Spring Bean xml ファイルをフォーマットする場合、フォーマッターは Spring 式言語値の途中で行を折り返すことができます。例えば、
このブロックは最終的に次のようになります
これは無効な Spring EL 式になります。
これを選択的に除外する方法はありますか? または、フォーマッタがこれを行うのを防ぐには? ファイルをフォーマットできないと、Spring EL の操作が面倒になります。
spring - SpEL は 'é' を処理できませんか?
私はフランス人なので、コードにé ê ô ûをいくつか入れました。(そして私は英語があまり上手ではありません)。
クラスにそのようなメソッドがありFormulaires
ます:
そして、構成スプリングxmlファイルで、私は試します:
しかし、春は次のように述べています。
é ではなく e を付ければ、すべて問題ありません。
アクセントに関する SpEL 制限はありますか?
私は春3.0.5を使用しています。
ありがとう。
spring - xml id の値を Spring Bean に注入する
誰かが私の目標を達成するための簡単な方法を知っているかどうか知りたい. ID の値を Spring Bean の文字列に挿入したいと考えています。
これは私が一言で言えば欲しいものです:
これが必要な理由は、Spring xml で構成されている多くのオブジェクトがあり、DB で管理する必要があるからです。Spring id は、私が使用できる便利なキーです。すべてのオブジェクトを抽象化しているので、すべてのオブジェクトを注入する必要はありません。Abstract クラスに ID をエレガントに設定することができます。つまり、これが機能する場合です。ありがとう -マット
spring - Bean定義ファイルのspEL:インラインリストで値を取得するには?
プロパティ ファイルのインライン リストを指定すると、次のようになります。
Bean 定義ファイルから、常にリストの最初の項目を抽出したいと考えています。この場合、「ジョン」を抽出します。
Spring Framework 3.0.4.RELEASE を使用すると、Bean プロパティは次のようになります。
これにより、明らかにリスト全体が得られます。
次を使用して名前リストの最初の項目を取得しようとしましたが、エラーが発生しました。
エラーは次のとおりです。
BeanExpressionException:例外の解析に失敗しました:有効な式を解析した後、式にまだデータがあります:「comma(,)」
私は本「Spring In Action」を見て、Springs WebサイトのSpring spEL Documentationを見てきました。私もかなりグーグルで検索しました。残念ながら、ほとんどのコード例はコードで行われ、Spring 定義ファイルでは行われません。これに関するご支援をいただければ幸いです。
caching - Spring.Caching.AspNetCache-ReturnValueに基づく条件-Spring式言語の条件
ASP.NETキャッシュでキャッシュアスペクトを使用しています。ReturnValueに基づいて条件を作成する必要があります。
問題を単純化しました。単純なPOCOオブジェクトを返すメソッドでCacheResultアスペクトを使用します。
定義は次のとおりです。
キャッシュの作成条件が必要です-MyResponse.MyData.Lenghtがバッチ制限よりも大きい場合にのみ結果をキャッシュします。
私はこの条件の定義を試しました:
このエラーが発生しました:
「MyResponse」ノードは、指定されたコンテキスト[Sample.MyResponse]に対して解決できません。
だから私は2番目のバージョンを試しました:
エラーで終了しました:
私はそれをグーグルで検索 ReturnValue
します。次のようなキーワードを使用できます。
しかし、どうすればにアクセスできるのかわかりませんMyResponse.MyData.Length
。
spring - propertyPlaceHolderConfigurer と環境変数
環境変数からプロパティファイルをロードしようとしているので、試したのは次のとおりです。
名前付きの新しい環境変数My_ENV_VAR=C:\Program Files\My Folder\props.properties
がありますが、アプリケーションを停止および開始するときに変数の値が設定されていません。
更新: 要件
パスが環境変数に格納されているファイル システムの外部プロパティ ファイルから、 applicationContext.xmlの休止状態のプロパティ (url、ユーザー名、パスワード) を読み取りたいと考えています。
spring - 配列メソッドパラメーターのSpring式言語(SpEL)
String
オブジェクトとClass
オブジェクトをパラメーターとして受け取るBeanのメソッドを呼び出そうとしているSpringIntegrationプロジェクトがあります。渡したいクラスオブジェクトはありLong[].class
ますが、正しい構文がわかりません。私は以下のさまざまな組み合わせを試しましたが、役に立ちませんでした。
今のところ、呼び出しを別のJavaクラス(Class
型をハードコーディング)でラップし、SpELを介して呼び出しています。配列クラスパラメータの正しい構文は何ですか?