dynamiczna konfiguracja

4 views
Skip to first unread message

prozz

unread,
Oct 9, 2007, 8:46:21 AM10/9/07
to Spring User Group Poland
Chcialbym osiagnac cos takiego:

jakis PlaceholderConfigurer, i dalej:
...
<import resource="beans/${build.type}/initialize.xml"/>
...

Powyzsze nie jest mozliwe (implementacja PropertyPlaceholderConfigurer
podmienia tylko wartosci property w beanach, a szybka analiza kodu
zrodlowego springa, podpowiada ze jest to dosyc karkolomne - moze sie
myle?).

Zasadniczo chodzi o to, ze klient ma otrzymac jara z zestawem
konfiguracji na rozne okazje, a wybrac wlasciwy podczas startu
aplikacji.

Powyzsze da sie rozwiazac pewnie na kilka innych sposobow. Macie jakis
swoj ulubiony i dosc elegancki? :)

pozdrawiam,
Pawel Rozynek

Paweł Rozynek

unread,
Oct 10, 2007, 4:09:19 AM10/10/07
to Spring User Group Poland
> jakis PlaceholderConfigurer, i dalej:
> ...
> <import resource="beans/${build.type}/initialize.xml"/>
> ...

Sam sobie odpowiem:
http://forum.springframework.org/showthread.php?t=35927&highlight=import+resource+placeholder

:)

--
PR

Hamster

unread,
Oct 11, 2007, 2:56:56 AM10/11/07
to Spring User Group Poland
On 9 Paź, 14:46, prozz <pro...@gmail.com> wrote:
> Chcialbym osiagnac cos takiego:
>
> jakis PlaceholderConfigurer, i dalej:
> ...
> <import resource="beans/${build.type}/initialize.xml"/>
> ...
Jak widac <import/> nie jest zbyt elastyczny i w DTD jest zdefiniowany
jako
empty zatem:
<import><property name="resource" value="foo/${bar}/initialize.xml"/></
import>

nie bardzo jest mozliwe ;]

W initialize.xml masz definiecje beanow ktore uzywasz "wyzej". Moze
zatem
zrobic jeden initialize.xml z beanami o nazwach np: foo.$
{build.type}.dataSource
i potem "wyzej" uzywac ref="foo.${build.type}.dataSource" + do tego
wszystkie beans
w initialize.xml zrobic jako lazy. Tyle ze takie rozwiazanie spowoduje
ze np. Spring IDE
sie posypie i bedzie krzyczec ze sa beans z tym samym id (moze warto
zamiast id
uzywac name :)).

Mozna problem przeniesc wyzej i zrobic master1.xml i master2.xml i tam
importy
odpowiednio dla dwoch typow builds i np. w junit uzywac master1.xml a
w web.xml uzywac
master2.xml...

To tak na szybko.

Pozdr,
Hamster

Reply all
Reply to author
Forward
0 new messages