Hlavní menu
Nástroje |
Parkoviště ve Spring DMImplementace ve Spring DM vychází z ParkovisteOsgi. Odstranili jsme ale Activatory a přidali jsme Springové konfigurační soubory. Proto zde budou informace pouze k těmto konfiguračním souborům. O eventách si přečtěte v ParkovisteOsgi. Springové konfigurační soubory musíme vytvořit s dvěmi XSD namespacy - beans a osgi. Základ všech konfiguračních souborůV každém bundlu se samozřejmě vytvoří jedna beana, která se pak musí zaregistrovat podobně jako Konfigurace. <osgi:service id="KonfiguraceZarizeniService?" ref="KonfiguraceZarizeni?" interface="cz.zcu.kiv.cosi.parkoviste.konfigurace.IKonfigurace?" /> Každá služba se pak samozřejmě musí získat, aby se mohla použít. Podobně jako Konfigurace. <osgi:reference id="KonfiguraceZarizeni?" interface="cz.zcu.kiv.cosi.parkoviste.konfigurace.IKonfigurace?" /> A pokud chceme tuto referenci použít jako konstruktorový argument, musíme použít následující zápis <bean id="Parkoviste"
class="cz.zcu.kiv.cosi.parkoviste.parkoviste.Parkoviste">
<constructor-arg ref="KonfiguraceZarizeni?"/>
</bean>
Získání EventAdmina?Abychom mohli používat eventy, musíme si zavolat službu na rozhranní EventAdmina?. Provede se to naprosto stejně, jako volání jakékoliv jiné služby v Spring DM. Tedy: <osgi:reference id="EventAdmin?" interface="org.osgi.service.event.EventAdmin?" /> Eventy v konfiguračních souborechProtože konfigurační soubory nahrazují Activatory a v těch jsme si registrovali listenery, určitě budeme muset něco registrovat i zde. Při registraci EventHandlera? jsme v Activatoru používali vytvořenou instanci listeneru a parametry. Zde tedy použijeme referenci na beanu (což je vlastně ta instance listeneru). A parametry službě nastavíme pomocí vnořeného uzlu <osgi:service id="BranaListenerService?" ref="Brana" interface="org.osgi.service.event.EventHandler?" > <osgi:service-properties> <entry key="event.topics" value="parkoviste/plne" /> </osgi:service-properties> </osgi:service> Registrace služby na víc rozhranníStejně jako v OSGi implementaci, i zde Brana implementuje dvě rozhranní - IZapVyp? a IPrijeloOdjelo?. V OSGi jsme se však nemuseli starat o způsob registrace služby. Zaregistrovali jsme ji na IZapVyp?, ale bez problému šla přetypovat i na IPrijeloOdjelo?. To však ve Spring DM nejde. Musíme ji tedy zaregistrovat pod několik rozhranní, jako v následujícím příkladu. Využijeme uzlu <osgi:service id="BranaService?" ref="Brana"> <osgi:interfaces> <value>cz.zcu.kiv.cosi.parkoviste.konfigurace.IZapVyp?</value> <value>cz.zcu.kiv.cosi.parkoviste.brana.IPrijeloOdjelo?</value> </osgi:interfaces> <osgi:service-properties> <entry key="type" value="brana" /> </osgi:service-properties> </osgi:service> Použití filtru při výběru službyPodobně jako v OSGi i zde můžeme použít filtr, když máme na jednom rozhranní zaregistrováno více služeb. Použití je ještě jednodušší - použije se atribut <osgi:reference id="Brana"
interface="cz.zcu.kiv.cosi.parkoviste.konfigurace.IZapVyp?"
filter="(type=brana)" />
|