Spring EL支持一些预定义的变量
{#systemProperties. ... }
{#systemEnvironment. ... }
{#request. ...}
{#session. ...}
前两个曾经在Spring Reference:第6章中有记录。Spring Expression Language(SpEL)。Spring Reference中未提及其他两个(或我没有找到它们。)(我在此幻灯片中找到了它们,以及在Spring social和此问题中的用法)。
所以我的问题是:预定义的spring-el变量是否或多或少完整?
我猜想其中一些预定义的变量不是由spring核心本身定义的,而是由诸如spring-mvc之类的某些模块“激活”的。因此,我对 或多或少常见的spring + jpa + mvc + security应用程序中可用 的变量感兴趣。
我无法回答您的根本问题,但可以给您一个提示。
在您的应用程序上下文启动时注册了一些预定义的Bean,但这取决于您使用的上下文类型。
通常,systemProperties并且systemEnvironment存在。在Web应用程序中加载弹簧,你也将获得servletContext,contextParameters和contextAttributes。我假设,request并且session也与Web应用程序上下文有关。
systemProperties
systemEnvironment
servletContext
contextParameters
contextAttributes
request
session
我在调试使用Spring 3.0.6RELEASE的应用程序时发现了这一点。一个很好的起点是SpringBeanELResolver.getValue()方法。