UvodDoKomponent: MessagePrinterSpringDM |
from Wiki KIVu |
Implementace ve Spring DM vychází z MessagePrinterOsgi. Odstranili jsme ale Activatory a přidali jsme Springové konfigurační soubory.
Springové konfigurační soubory musíme vytvořit s dvěmi XSD namespacy - beans a osgi.
Abychom mohli v OSGi zaregistrovat službu pomocí Spring DM, musíme udělat dva kroky:
1) Vytvořit si beanu, kterou chceme registrovat (tedy vlastně instanci třídy)
2) Pomocí tagu <osgi:service>
beanu zaregistrovat jako službu, kde:
id
je víceméně na nic :)
ref
je reference na registrovanou beanu
interface
je rozhranní, pod kterým bude služba registrována
<bean id="MsgGenService" class="cz.zcu.kiv.cosi.msgtalk.server.MsgGenImpl"></bean> <osgi:service id="MsgGenServiceOsgi" ref="MsgGenService" interface="cz.zcu.kiv.cosi.msgtalk.IMsgGen" />
Protože chceme získat službu, která je zaregistrovaná na rozhranní cz.zcu.kiv.cosi.msgtalk.IMsgGen?
použijeme notaci <osgi:reference>
.
Pak už jen vytvoříme jednoduchou beanu se startovací a ukončovací metodou a předáme jí získanou službu pomocí property injection.
<osgi:reference id="MsgGenService" interface="cz.zcu.kiv.cosi.msgtalk.IMsgGen" /> <bean name="MsgClient" class="cz.zcu.kiv.cosi.msgtalk.client.MsgClient" init-method="start" destroy-method="stop" > <property name="myMsgGen" ref="MsgGenService" /> </bean>