7

Spring EL はいくつかの事前定義された変数をサポートします

  • {#systemProperties. ... }
  • {#systemEnvironment. ... }
  • {#request. ...}
  • {#session. ...}

最初の 2 つは、 Spring Reference の章 6. Spring Expression Language (SpEL)に一度文書化されています。他の 2 つは、Spring Reference で言及されていません (または、私はそれらを見つけませんでした) (私はこのスライドで見つけました。また、Spring Socialでの使用法とこの質問でも見つけました)。

だから私の質問は: 定義済みの spring-el 変数の多かれ少なかれ完全なリストはありますか?

この事前定義された変数のいくつかは、Spring コア自体によって定義されているのではなく、spring-mvc などのいくつかのモジュールを「アクティブ化」することによって定義されていると思います。したがって、多かれ少なかれ一般的な spring + jpa + mvc + security アプリケーションで使用できる変数に興味があります。

4

2 に答える 2

8

また、それが現在のインスタンスenvironmentに解決されることにも気づきました。これが文書化された機能であるかどうかはわかりませんが、クラスorg.springframework.core.env.Environmentで次のことを行うための簡潔な方法を探していました。@Configuration

@Value("#{environment.acceptsProfiles('test')}")
private boolean test;

これにより、さらにBeanの定義でこの値をオフに切り替えることができます。

この問題に対処するために、次のJIRAを送信しました。

https://jira.springsource.org/browse/SPR-9037

于 2012-01-19T02:01:53.983 に答える
5

根本的な質問にはお答えできませんが、ヒントを提供できるかもしれません。

アプリケーションコンテキストの起動時に登録された事前定義された Bean がいくつかありますが、使用しているコンテキストタイプによって異なります。

通常、systemPropertiesおよびsystemEnvironment存在します。Web アプリケーション内で Spring をロードするとservletContext、 、contextParametersおよびも取得されcontextAttributesます。私は、Web アプリケーションのコンテキストにも関連しているrequestと思います。session

Spring 3.0.6RELEASE を使用するアプリケーションのデバッグ中にこれを発見しました。良い出発点は SpringBeanELResolver.getValue() メソッドです。

于 2011-10-25T10:34:39.817 に答える