Lista de variables ​​EL Spring?

Spring EL suporta algumas variables ​​predefinidas

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

Os dois primeiros uma vez estão documentados no Spring Reference: Capítulo 6. Spring Expression Language (SpEL) . Os outros dois não são mencionados na Referência da spring (ou eu não os encontrei). (Eu os encontrei neste slide , assim como o seu uso na primavera social e essa questão ).

Então, minha pergunta é: existe uma lista mais ou menos completa de variables ​​predefinidas de spring-el?

Eu acho que algumas dessas variables ​​predefinidas não são definidas pelo próprio spring core, mas pela “ativação” de alguns módulos como spring-mvc. Por isso, estou interessado nas variables que estão disponíveis em um aplicativo mais comum de spring + jpa + mvc + security .

Eu não posso responder sua pergunta raiz, mas posso dar uma dica.

Existem alguns beans predefinidos registrados na boot do seu contexto de aplicativo, mas que dependem do tipo de contexto que você está usando.

Comumente, systemProperties e systemProperties estão presentes. Carregando o Spring em um aplicativo da web, você também obterá servletContext , contextParameters e contextAttributes . Eu suponho, request e session estão relacionados a um contexto de aplicativo da web também.

Eu descobri isso durante a debugging do meu aplicativo que usa o Spring 3.0.6RELEASE. Um bom ponto de partida é o método SpringBeanELResolver.getValue ().

Também percebo que o environment resolvido para a instância atual do org.springframework.core.env.Environment . Não tenho certeza se esse é um recurso documentado, mas eu estava procurando uma maneira concisa de fazer o seguinte na minha class @Configuration :

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

O que então me permite desligar esse valor em outras definições de bean.

Eu enviei o seguinte JIRA para resolver este problema:

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