Mit AngularJS und Java EE 6 zu einer leichgewichtigen Webanwendung

Im Rahmen der Mitarbeitervorträge wurde diese Woche eine alternative zum „klassischen“ Vorgehen der Webentwicklung vorgestellt. Mit klassisch ist gemeint: JSF 2 in einem Tomcat oder JBoss mit ‚on top’ Bibliotheken wie z.B. Primefaces für die Darstellung.

In Bezug auf einen Artikel im Javamagazin 04/2013 von Nils Preusker wurde ein Weg beschrieben, der ganz auf HTML5 (HTML + JavaScript + CSS3) und den Java EE 6 Standard setzt. Dabei wird komplett auf JSF verzichtet. Die beiden Aspekte: Frontend mittels HTML5 und Backend mittels JBoss AS 7 werden über REST Services miteinander verbunden. Zum Repräsentieren der fachlichen Entitäten wird als Media-Type ‚JSON’, weil es sich mit JavaScript einfach verarbeiten lässt, verwendet. AngularJS hilft dabei die JavaScript-Anwendung besser strukturieren zu können. Das Framework vereinfacht das Data Binding zwischen View und Controller. Das Layout der Anwendung wird durch den Twitter Bootstrap als Basis bereitgestellt.

Wie im Magazin beschrieben wird eine CRUD (Create, Read, Update, Delete)-Anwendung für Kunden – ein CRM System – realisiert.

Das Projekt, in Eclipse als Maven Archetype importiert, wird auf einem JBoss AS 7.1.1 deployed. Der Controller und die Services sind als JavaScripts implementiert und werden clientseitig im Browser ausgeführt. Hier finden die Navigation der Seite sowie die Aufrufe der Serverseitigen REST Implementierung statt.

Der Artikel zeigt eindrucksvoll, wie mit wenig Code eine funktionierende Webanwendung auch ohne JSF und völlig stateless, aber dennoch mit Unterstützung von bekannten Java Elementen realisiert werden kann. Für eine Webanwendung unter „realen“ Bedingungen würden dann noch weitere Aspekte wie z.B. Benutzeranmeldung, Rollenverteilung, Tests usw. hinzukommen.

Ich hoffe, der Beitrag hat Interesse geweckt und lässt über alternative Herangehensweisen neben bekannten Frameworks nachdenken.