Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Warning: Cannot modify header information - headers already sent by (output started at /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php:564) in /home/system/www/apache/wiki.kiv.zcu.cz/index.php on line 885
Wiki KIVu > UvodDoKomponent > ParkovisteSpring (browse)

Hlavní menu

Nástroje

UvodDoKomponent / ParkovisteSpring

View (print) - Edit page | Recent changes - Page history

Updated 16 December 2009, 13:26 by Snajberk

Parkoviste ve Springu

V tomto tutoriálu se používá SpringSource Tool Suite.

V tomto případě by nemělo moc smysl procházet všechny části implementace, protože je k dispozici implementace. Zaměřím se tedy hlavně na konfigurační soubor springu a eventy.

Nastavení beanů v BeanDefinition?.xml

Zatím jsem použil jen jeden typ dependency injection a to ten následující:

<bean id="KonfiguraceZarizeni"
class="cz.zcu.kiv.cosi.parkoviste.konfigurace.KonfiguraceZarizeni">
<property name="frekvence">
<value>50</value></property>
<property name="kapacita">
<value>15</value></property>
</bean>

V tomto případě nastavíme parametry beany pomocí metod setParametr. A třída je samozřejmě musí implementovat.

Druhým způsobem dependency injection je vložení parametrů přímo do konstruktoru. Můžu injektovat vytvořené beany, pomocí reference.

Ale můžu injektovat i jednoduché datové typy pomocí <value>hodnota</value>

<bean id="Parkoviste"
class="cz.zcu.kiv.cosi.parkoviste.parkoviste.Parkoviste">
<constructor-arg type="cz.zcu.kiv.cosi.parkoviste.IKonfigurace">
<ref bean="KonfiguraceZarizeni"/></constructor-arg>
</bean>

Eventy ve Springu

Spring zastává zaběhlý a dobrý model.

1) Implementace vlastního objektu Event (rozšířením existujícího), který se bude posílat

2) Implementace rozhranní, abychom mohli eventy vyvolávat

3) Implementace jiného rozhranní, abychom mohli eventy přijímat

Vlastní jednoduchá eventa

Vytvoření eventy je jednoduché. Musí rozšiřovat třídu ApplicationEvent?. Se zbytkem pomůže SpringSource? Tool Suite. Doplní UID, vytvoří prázdný konstruktor. Další parametry konstruktoru, či další přenášené informace touto eventou jsou již jen na nás.

public class ParkovisteZbyvaEvent extends ApplicationEvent {
        private int volnaMista;

        private static final long serialVersionUID = -6274326312725528660L;

        public ParkovisteZbyvaEvent(Object source, int volnaMista) {
                super(source);
                this.volnaMista = volnaMista;
        }

        public int getVolnaMista() {
                return volnaMista;
        }
}

Zveřejnění eventy

Třída, která bude eventy zveřejňovat musí implementovat rozhranní ApplicationContextAware?

Toto rozhranní bude požadovat implementaci metody, pro nastavení kontextu aplikace.

@Override
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
        this.context = applicationContext;
}

A to je vše, co bylo třeba připravit. Spring se o vše postará sám, nyní stačí eventu zveřejnit pomocí metody publishEvent()

context.publishEvent(new ParkovisteZbyvaEvent(this, volnaMista));

Příjem eventy

Aby mohla třída eventy přijímat musí implementovat rozhranní ApplicationListener?

Toto rozhranní bude požadovat implementaci metody onApplicationEvent, která už přímo slouží ke zpracování událostí.

Pro rozpoznání typu eventy je dobré použít testovací podmínku event instanceof TypEventy?

@Override
public void onApplicationEvent(ApplicationEvent event) {
        if (event instanceof ParkovisteZbyvaEvent) {
                ParkovisteZbyvaEvent parkovisteZbyvaEvent = (ParkovisteZbyvaEvent) event;
                System.out.println("(Pult) Volna mista: " + parkovisteZbyvaEvent.getVolnaMista());
        }
        else if (event instanceof ParkovistePlneEvent) {
                System.out.println("(Pult) Parkoviste je plne!");
        }
}