40

Spring Security Expressionsを拡張して、既存のセキュリティインフラストラクチャをサポートする方法を探しています。ここで説明するようにMethodSecurityExpressionRootを拡張できることは承知していますが、Spring Expression Language(Spring ELまたはSpEL)を介して静的メソッドを直接呼び出すことへの参照も見つかりました。残念ながら、Spring Expressionメソッドの公式ページには、これを行う方法が直接説明されていません。

Spring Expressionメソッドを介して静的メソッドを呼び出すにはどうすればよいですか?

4

1 に答える 1

72

T(fully.qualified.name).methodName()構文を使用して:

特殊演算子を使用して、 (タイプ)Tのインスタンスを指定できます。java.lang.Class静的メソッドは、この演算子も使用して呼び出されます。はタイプを見つけるためにをStandardEvaluationContext使用し、 (置き換えることができる)はパッケージを理解して構築されています。つまり、内の型への参照は完全に修飾する必要はありませんが、他のすべての型参照は完全修飾する必要があります。TypeLocatorStandardTypeLocatorjava.langT()java.lang

このT要素は、インスタンスではなく型への参照を返します。たとえばCollections.singleton("Hello")

T(java.util.Collections).singleton('Hello')
于 2011-09-28T15:41:43.540 に答える