2012-11-02 10 views
7

Vorrei importare diversi file di risorse in base ad alcune condizioni. È possibile?supporta lo SpEL nelle istruzioni di importazione?

queste non funzionano:

<import resource="#{ systemProperties['foo'] }.xml" /> 

<import resource="#{ T(my.testpkg).getValue() }.xml" /> 
+2

Se siete su Spring 3.1 o superiore, probabilmente si dovrebbe usare [* profili definizione di fagioli *] (http://blog.springsource.com/2011/02/11/spring-framework-3-1-m1 -released /) per questo genere di cose, se puoi. Penso che '' s siano risolti abbastanza presto, prima che il grafo dei bean sia costruito. – millimoose

+0

Bene, i segnaposto $ {...} sembrano funzionare nelle istruzioni di importazione, questa sarebbe una caratteristica utile. –

+1

Questi segnaposto sono ancora in qualche modo speciali: http://blog.springsource.com/2011/02/15/spring-3-1-m1-unified-property-management/. I loro valori devono essere disponibili * prima * dell'analisi. (O prima di qualche altro passo nell'elaborazione delle definizioni dei bean, non sono così familiare con gli interni di Spring). – millimoose

risposta

1

SPEL è supportato, ma la primavera risolve l'istruzione import molto presto.

Quando la primavera si sta risolvendo istruzioni di importazione, i segnaposto di proprietà non sono ancora stati risolti.

Ad esempio:

definire le seguenti proprietà:

import.fileName=${blah} 
blah=properties.props 

Possiamo quindi utilizzare la proprietà 'import.fileName' come parametro per l'importazione

<import resource="${import.fileName}" /> 

Questo risolve :

<import resource="${blah}" /> 

E presumibilmente la risorsa '$ {blah}' non esiste.

Detto questo, è possibile utilizzare le proprietà per risolvere i nomi di file di importazione.

Problemi correlati