2012-11-02 13 views
7

Chciałbym importować różne pliki zasobów na podstawie pewnych warunków. czy to możliwe?Czy Spel jest obsługiwany w instrukcjach importu?

te nie działają:

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

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

Jeśli korzystasz z wersji Spring 3.1 lub nowszej, prawdopodobnie powinieneś użyć [* profile definicji fasoli *] (http://blog.springsource.com/2011/02/11/spring-framework-3-1-m1 -released /) za tego typu rzeczy, jeśli możesz. Myślę, że '' 's są rozwiązane dość wcześnie, zanim zostanie skonstruowany wykres fasoli. – millimoose

+0

No cóż, symbole zastępcze $ {...} wydają się działać w instrukcjach importu, to byłaby przydatna funkcja. –

+1

Te symbole zastępcze są nadal dość wyjątkowe: http://blog.springsource.com/2011/02/15/spring-3-1-m1-unified-property-management/. Ich wartości muszą być dostępne * przed * analizą. (Lub przed jakimś innym krokiem w przetwarzaniu definicji komponentów bean, nie jestem zaznajomiony z wewnętrznymi wersjami Spring). – millimoose

Odpowiedz

1

Spel jest obsługiwany, ale wiosna rozwiązuje oświadczenie import bardzo wcześnie.

Kiedy wiosna rozwiązuje deklaracje importu, symbole zastępcze obiektów nie zostały jeszcze rozwiązane.

Na przykład

zdefiniować następujące właściwości:

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

Następnie można użyć własności 'import.fileName' jako parametr do importu

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

ten postanawia :

I prawdopodobnie zasób "$ {blah}" nie istnieje.

Mimo to można użyć właściwości do rozpoznawania nazw plików importowanych.

Powiązane problemy