Auch mit JSF 2 und CDI lassen sich in kürzester Zeit komplexe Anwendungen realisieren, wenn man weiß, wie. Anhand des Technologie-Stacks JSF 2, CDI, Lombok, HTML5, jQuery und JPA wird eine leichtgewichtige Architektur anhand einer Livedemo vorgestellt, die den Anforderungen des Rapid Application Development gerecht wird und in der Cloud betrieben werden kann.
9. Wunschliste für
Dependency Injection ...
• Standardisierte DI für Java
– Wiederverwendbarkeit
– Testbarkeit
– Flexibilität
• Fachlichkeit statt Infrastruktur
– Eingeloggter Benutzer statt UserService
• ... und natürlich Erweiterbarkeit
10. Context and Dependency
Injection
• CDI 1.0 (JSR-299)
– typsicheres und schichtenneutrales Injection Framework
– Annotationsbasiert
• @Produces, @RequestScope, @ConversationScope
– mehrere Implementierungen
• Weld, Apache Open WebBeans, Caucho CanDI
– nutzt DI for Java (JSR-330) als grundlegende API
• @Inject, @Named, ...
– bietet Mechanismus zur individuellen Erweiterung
• CDI ermöglicht ...
– Java Enterprise Entwicklung ohne EJB und ohne Spring
11. Context and Dependency
Injection
• CDI Beans ersetzen JSF Beans
JSF 2.0 (JSR 314) CDI 1.0 (JSR 299, JSR 330)
@javax.faces.bean.ManagedBean @javax.inject.Named
@javax.faces.bean.ManagedProperty @javax.inject.Inject
@javax.faces.bean.SessionScoped @javax.enterprise.context.SessionScoped
• Vorteile
– alle Beans werden im CDI Container verwaltet
– Injizieren von POJOs und Diensten in „Managed Beans“
möglich
– Leichtgewichtig
• läuft auch im Web Container
12. HTML
• Einfache Nutzung mit
Facelets und
Composite Components
• Mit JSF2.2 auch
HTML5 Komponenten
13. • freie, umfangreiche
JavaScript Bibliothek
• komfortable Möglichkeit
zur DOM Manipulation
• Erweiterbarkeit durch
Plugins (u.a. DataTable)
15. Bean Validation
• Standardisierung von
Constraints in Form von
Annotations
• Standardisierung des
Metadata API
• Integration anderer
Frameworks wie z.B.
JSF und JPA