Spring支持一些预定义的变量。
{#systemProperties. ... }{#systemEnvironment. ... }{#request. ...}{#session. ...}前两次记录在Spring参考:第6章. Spring表达式语言(SpEL)中。其他两个在Spring引用中没有提到(或者我没有找到它们)。(我在这个幻灯片中找到了它们,以及它在春社和这个问题中的用法)。
因此,我的问题是:是否有一个或多或少完整的预先定义的spring-el变量列表?
我猜这些预定义的变量中有一些不是由spring核心本身定义的,而是通过“激活”某些模块(如spring)来定义的。因此,我对变量感兴趣,这些变量或多或少可以在一个普通的spring + jpa + mvc +安全应用程序中使用。
发布于 2011-10-25 10:34:39
我不能回答你的根本问题,但我可以给你一个提示。
在启动应用程序上下文时注册了一些预定义bean,但这取决于您使用的上下文类型。
通常,systemProperties和systemEnvironment都存在。在web应用程序中加载Spring,您还将得到servletContext、contextParameters和contextAttributes。我猜想,request和session也与web应用程序上下文相关。
我在调试使用Spring3.0.6RELEASE的应用程序时发现了这一点。SpringBeanELResolver.getValue()方法是一个很好的起点。
发布于 2012-01-19 02:01:53
我还注意到,environment解析为当前的org.springframework.core.env.Environment实例。我不确定这是一个文档化的特性,但我在@Configuration类中寻找一种简洁的方法来执行以下操作:
@Value("#{environment.acceptsProfiles('test')}")
private boolean test;它允许我在进一步的bean定义中关闭这个值。
为解决这一问题,我提交了以下联合报告:
https://stackoverflow.com/questions/7885847
复制相似问题