JavaEE / Jarkata EE

Set of Interfaces to add enterprise features to Java.

Glossary

  • EJB - Enterprise Java Bean
  • CDI - Java Contexts and Dependency Injection
  • JAR - Javaarchive
  • WAR - Webarchive (nur Java EE Webprofile, bei Fullprofile + EJB’S etc.) Beeinhaltet: - HTML Files - Resourcen - Java Files

JPA

@PersistenceContext EntityManager ist null, wenn man außerhalb einer Transaktion ist.

CDI Events

  • In CDI ist das Observer-Pattern implementiert und bietet eine Möglichkeit Events zu feuern und zu empfangen.
  • Mit Annotationen und Qualifiern kann man Observer definieren.
  • Event-Klassen müssen selbst erstellt werden.
  • CDI Events mit Queue oder Subscribers/Publishers sind nur synchron.
  • Einfaches Observer Pattern, bei der das Subject eine Liste von Observern enthält, funktioniert nur, wenn Subject und Observer im gleichen Prozess sind. Ansonsten muss eine Registry verwendet werden, die die Verwaltung der Observer übernimmt.
  • Mit CDI sollten nur Objekte injektiert werden, wenn es benötigt wird. (Z.b ServiceBeans, oder Resourcen wie Logger oder Schnittstellen zwischen den Schichten)
  • Injected man etwas, ist der CDI-Container für den Lebenszyklus des injektierten Objektes verwantwortlich.
  • Bean Validation löst das Problem, dass man in der Business und in der Presentation schicht Validierungen vornehmen muss. Für extrige Clientseitige-Validation verwendet man einen Service der Businesschicht der asynchron aufgerufen wird.
  • CDI Producer kann man gut mit Factory vergleichen.
  • Interceptor und Decorator

CDI Lifecycle

PostConstruct() und PreDestroy() können verwendet werden, um vor oder nach dem Code Setup code oder aufräumarbeiten auszuführen.

JavaEE Services

  • Service mit EJB’s verwenden.
  • Im Buch werden Services mit CDI gemacht.

Guides

Startup Logic

mit @Startup auf @Singleton EJB und @PostConstruct (Nur beim Start der Applikation) Singleton Bean wird benötigt, da der Applikationsserver oft Stateless Session Beans poolt.