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<[email protected]>:
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