2011-10-25 4 views
7

Primavera EL supporta alcune variabili predefiniteElenco delle variabili EL Spring?

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

I primi due, una volta sono documentate nel Spring Reference: chapter 6. Spring Expression Language (SpEL). Gli altri due non sono menzionati nella Spring Reference (o non li ho trovati.) (Li ho trovati in questo slides, così come il suo uso in spring social e questo question).

Quindi la mia domanda è: c'è una lista più o meno completa di variabili predefinite el-molla?

Immagino che alcune di queste variabili predefinite non siano definite dal core stesso, ma "attivando" alcuni moduli come spring-mvc. Quindi sono interessato alle variabili disponibili in un'applicazione di sicurezza spring + jpa + mvc + più o meno comune.

risposta

5

Non posso rispondere alla tua domanda di root ma potrei darti un suggerimento.

Ci sono alcuni bean predefiniti registrati all'avvio del contesto dell'applicazione, ma che dipendono dal tipo di contesto che si sta utilizzando.

Comunemente, sono presenti systemProperties e systemEnvironment. Caricando Spring in un'applicazione web, otterrai anche servletContext, contextParameters e contextAttributes. Presumo, request e session sono correlati a un contesto di applicazioni web pure.

L'ho scoperto durante il debug della mia applicazione che utilizza Spring 3.0.6RELEASE. Un buon punto di partenza è il metodo SpringBeanELResolver.getValue().

7

Inoltre noto che environment risolve l'istanza corrente org.springframework.core.env.Environment. Non sono sicuro che questa è una caratteristica documentata, ma ero alla ricerca di un modo conciso per effettuare le seguenti operazioni nella mia classe @Configuration:

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

Che poi mi permette di spegnere questo valore in ulteriori defintions di fagioli.

Ho presentato il seguente JIRA per risolvere questo problema:

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