16 Aralık 2021 Perşembe

EJB @Startup Anotasyonu - EJB 3.1 İle Geliyor

Giriş
Eski kodlarda şu satırı dahil ederiz.
import javax.ejb.Startup;
Şu satırı dahil ederiz
import jakarta.ejb.Startup;
Uygulama ayağa kalktığında bu bean yaratılır. Açıklaması şöyle
The @Startup annotation is new in the EJB 3.1 specification and it is not supported in the EJB 3.0 specification.
CDI, Servlet ve EJB startup işleri için örnekler burada

Örnek
Şöyle yaparız.
@Singleton
@Startup
public class StartupBean {

  @PostConstruct
  private void startup() {
    TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
  }
}
Örnek
Şöyle yaparız. EJB singleton olduğu için properties değerlerine her yerden erişebiliriz.
@Singleton
@Startup
public class EJBSingleton {

  Properties properties;

  @PostConstruct
  public void init() {
    InputStream inputStream = this.getClass().getClassLoader()
      .getResourceAsStream("console.properties");

    properties = new Properties();
    System.out.println("InputStream is: " + inputStream);
    // Loading the properties
    properties.load(inputStream);

    // Printing the properties
    System.out.println("Read Properties." + properties);
  }
}
Örnek
Şöyle yaparız. @Schedule ile bir timer başlatılır. @Lock ile tek thread'in metoda girmesini sağlıyoruz.
@Startup
@Singleton
public class ScheduledJob {

  @Inject
  private JMSContext jmsContext;

  @Resource(lookup = "queue/PayaraMessageQueue")
  private Queue queue;

  @Schedule(hour = "*", minute = "*", second = "0", timezone = "UTC")
  public void scheduledMethod() {
    sendMessageToQueue("ScheduledJob", "Hello from SingletonEJB");

  }
  @Lock(LockType.WRITE)
  public void sendMessageToQueue(String source, String message) {
    try {
      TextMessage tm = jmsContext.createTextMessage();
      tm.setText(message);
      jmsContext.createProducer().send(queue, tm);
    } catch (JMSException e) {
...
    }
  }
}

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...