spring: konfiguracia zoznamu beanov v properties subore
Peter Stibrany
pstibrany na gmail.com
Úterý Únor 16 14:36:09 CET 2010
Mozete prosim trochu rozviest moznost 3? Nie som si celkom isty co
hladat v dokumentacii, klucove slova nezaberaju.
Myslim, ze to vyriesim tak, ze budem mat objekt, ktory naparsuje
konfiguraciu (t.j. moznost 1) a bude obsahovat kolekciu tych mojich
"beanov" ... (v ukazke to boli datove zdroje). Dalsi kod bude aj tak
potrebovat dohladat konkretny "bean" podla vlastnosti (v ukazke by to
mohol byt povedzme driver). Povodne som myslel, ze si tento kod
jednoducho vypyta z aplikacneho kontextu vsetky beany daneho typu,
pripadne si ich necha injektnut kontainerom, ale v konecnom dosledku je
to jedno. Testovat sa to da tak ci tak.
Dakujem,
-Peter
On 16. 2. 2010 14:20, Roman Pichlík wrote:
> To nepujde, konfigurace je staticka. Jediny zpusob jak to obejit je:
>
> 1.) napsat si vlastni configuration source, ktery to naparsuje z toho
> properties souboru a vytvori ty beany
> 2.) pouzit indirekci v podobe nejake factory, ktera bude vracet neco
> jako holder (Map<String, Datasource>, List<Datasource> ci neco
> chytrejsiho) pro vsechny datasources.
> 3.) mit ty beany popsane pomoci properties souboru coz Spring umoznuje
>
>
> 2010/2/16 Peter Stibrany<pstibrany na gmail.com>:
>
>> Dobry den,
>>
>> chcel by som v Springu nakonfigurovat viacero beanov, pricom cast
>> konfiguracie by som rad zapisal do externeho properties suboru.
>>
>> Napriklad, povedzme ze chcem vytvorit viacero datovych zdrojov. V properties
>> subore by som mal nieco ako:
>>
>>
>>> jdbc.1.driver=com.mysql.jdbc.Driver
>>> jdbc.1.url=jdbc:mysql://localhost/mydb
>>>
>>> jdbc.2.driver=org.postgresql.Driver
>>> jdbc.2.url=jdbc:postgresql://host/mydb
>>>
>>> ...
>>>
>>> jdbc.N.driver=net.sourceforge.jtds.jdbc.Driver
>>>
>>> jdbc.N.url=jdbc:microsoft:sqlserver://host:port;databasename=name;user=yourUser;password=yourPwd
>>>
>>>
>> V aplicationContext.xml by som teraz chcel nejakym sposobom vytvorit
>> dataSource pre kazdu jdbc konfiguraciu v mojom properties subore. Pre jediny
>> dataSource by to bolo jednoduche:
>>
>>
>>> <context:property-placeholder
>>> location="classpath:com/foo/connections.properties"/>
>>>
>>> <bean id="dataSource" destroy-method="close"
>>> class="org.apache.commons.dbcp.BasicDataSource">
>>> <property name="driverClassName" value="${jdbc.driver}" />
>>> <property name="url" value="${jdbc.url}" />
>>> </bean>
>>>
>> Neviem vsak ako pouzit vsetky properties jdbc.XX.driver a vytvorit novy
>> datasource pre kazdy z nich. Ako by som toto mohol zapisat do
>> applicationContext.xml? Su na to v Springu uz nastroje?
>>
>> (Hore uvedeny priklad je len demonstracny, chcem to na nieco ine nez
>> databazove spojenia).
>>
>> Dakujem,
>> -Peter
>>
>>
>
>
>
Další informace o konferenci Konference