16 Aralık 2021 Perşembe

Jakarta EE @Observes Anotasyonu

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.
@Inject
private 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

Bean Validation @GroupSequence Anotasyonu

Örnek Elimizde şöyle bir kod olsun public class SampleRequest {   @NotNull   LocalDate startDate;   @NotNull   LocalDate endDate;   @AssertT...