Giriş
Örnek
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.
Şö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); } }
Şöyle yaparız. @Schedule ile bir timer başlatılır. @Lock ile tek thread'in metoda girmesini sağlıyoruz.
@Startup@Singletonpublic class ScheduledJob {@Injectprivate 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