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