2011-10-25 16 views
7

resorte EL soporta una algunas variables predefinidas¿Lista de variables EL de Spring?

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

El primero dos una vez están documentados en la Spring Reference: chapter 6. Spring Expression Language (SpEL). Los otros dos no se mencionan en la referencia de primavera (o no los encontré) (los encontré en este slides, así como su uso en spring social y este question).

Entonces mi pregunta es: ¿hay una lista más o menos completa de las variables predefinidas de spring-el?

Supongo que algunas de estas variables predefinidas no están definidas por el propio núcleo de resorte, sino por la "activación" de algunos módulos como spring-mvc. Por lo tanto, estoy interesado en las variables que están disponibles en una aplicación de seguridad spring + jpa + mvc + más o menos común.

Respuesta

5

No puedo responder su pregunta de raíz pero puedo darle una pista.

Existen algunos beans predefinidos registrados al inicio del contexto de la aplicación, pero que dependen del tipo de contexto que esté utilizando.

Comúnmente, systemProperties y systemEnvironment están presentes. Cargando Spring dentro de una aplicación web, también obtendrá servletContext, contextParameters y contextAttributes. Supongo que request y session están relacionados también con el contexto de una aplicación web.

Descubrí esto durante la depuración de mi aplicación que utiliza Spring 3.0.6RELEASE. Un buen punto de partida es el método SpringBeanELResolver.getValue().

7

También observo que environment se resuelve en la instancia actual org.springframework.core.env.Environment. No estoy seguro de que esto es una característica documentada, pero yo estaba buscando una manera concisa de hacer lo siguiente en mi clase @Configuration:

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

que entonces permite que yo apago este valor en más DEFINCIONES frijol.

he presentado la siguiente JIRA para abordar esta cuestión:

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

Cuestiones relacionadas