Giriş
Şu satırı dahil ederiz
import jakarta.enterprise.event.Observes;
javax.enterprise.event.Event tarafından fırlatılan event'leri dinler
CDI, Servlet ve EJB startup işleri için örnekler burada
Örnek
Şöyle yaparız
//NOT e.g. jakarta.faces.bean.ApplicationScoped import jakarta.enterprise.context.ApplicationScoped; @ApplicationScoped public class Config { public void init(@Observes @Initialized(ApplicationScoped.class)ServletContext ctx) { // Do stuff during webapp's startup. } public void destroy(@Observes @Destroyed(ApplicationScoped.class) ServletContext ctx) { // Do stuff during webapp's shutdown. } }
Örnek
Önce bir event tanımlarız. Şöyle yaparız
public class AddPersonEvent {private Person person;public AddPersonEvent(Person person) {this.person = person;}public Person getPerson() {return person;}}
Gönderen tarafta şöyle yaparız. Burada javax.enterprise.event.Event kullanılıyor.
@Injectprivate Event<AddPersonEvent> addPersonEvent;addPersonEvent.fire(new AddPersonEvent(person));
Alan tarafta şöyle yaparız
public void addPerson(@Observes AddPersonEvent addPersonEvent) {allPersons.add(addPersonEvent.getPerson());}
Örnek
Şöyle yaparız. Burada javax.enterprise.event.Event kullanılıyor.
@ApplicationScoped
public class Journalist {
@Inject
private Event<News> event;
@Inject
private Event<News> specificEvent;
public void receiveNews(News news) {
this.event.fire(news);
}
}
public class Magazine implements Consumer<News> {
private static final Logger LOGGER = Logger.getLogger(Magazine.class.getName());
@Override
public void accept(@Observes News news) {
LOGGER.info("We got the news, we'll publish it on a magazine: " + news.get());
}
}
Hiç yorum yok:
Yorum Gönder