Giriş
Bir hiyerarşi varsa ve anotasyon kalıtan sınıfta da kullanılırsa kod kalıtan sınıfa gider. Yani ata sınıftaki metod override edilebilir.
Örnek
Şöyle yaparız.
Metod imzası parametre almaz
Örnek
Şöyle yaparız.
Anotasyonun Birden Fazla Kullanımı - Multiple @EventListener Annotations
Aynı sınıf içinde birden fazla metodu bu anotasyon ile işaretleyebiliirz.
Örnek
Şöyle yaparız.
Açıklaması şöyle.
Örnek
Bir sınıfta bu anotasyona sahip iki metod varsa hangisinin önce çağrılcağını belirtmek mümkün. Önce çağrılmasını istediğimiz metod için şöyle yaparız.
Bir hiyerarşi varsa ve anotasyon kalıtan sınıfta da kullanılırsa kod kalıtan sınıfa gider. Yani ata sınıftaki metod override edilebilir.
Örnek
Şöyle yaparız.
@EventListener
public void handleContextStart(EnvironmentChangeEvent event) {
System.out.println("changed");
//Use this for getting the version from consul
}
classes AlanıMetod imzası parametre almaz
Örnek
Şöyle yaparız.
@EventListener(ApplicationReadyEvent.class)
public void doSomethingAfterStartup() {
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
}
Diğer
Anotasyonun Birden Fazla Kullanımı - Multiple @EventListener Annotations
Aynı sınıf içinde birden fazla metodu bu anotasyon ile işaretleyebiliirz.
Örnek
Şöyle yaparız.
@Component
public class ListenerClass {
@EventListener
public void handleFooEvent(Foo fooEvent) {...}
@EventListener
public void handleBarEvent(Bar barEvent) {...}
}
@Order ile Birlikte KullanımıAçıklaması şöyle.
It is also possible to define the order in which listeners for a certain event are to be invoked. To do so, add Spring's common @Order annotation alongside this event listener annotation.
Bir sınıfta bu anotasyona sahip iki metod varsa hangisinin önce çağrılcağını belirtmek mümkün. Önce çağrılmasını istediğimiz metod için şöyle yaparız.
@EventListener
@Order(0)
@Async
public void doSomethingForEvent(SomeEvent event)
Sonra çağrılmasını istediğimiz metod için şöyle yaparız@EventListener
@Order(1)
@Async
public void doAnotherThingForEvent(SomeEvent event)
Hiç yorum yok:
Yorum Gönder