Struts, Tapestry, Spring, Hibernate

Was taugen Open-Source-Frameworks?

26.08.2009
Von 
Diego Wyllie hat Wirtschaftsinformatik an der TU München studiert und verbringt als Softwareentwickler und Fachautor viel Zeit mit Schreiben – entweder Programmcode für Web- und Mobile-Anwendungen oder Fachartikel rund um Softwarethemen.

Spring: EJB-Features auch in Tomcat, Jetty und Co.

Die Entwickler des "Spring Framework", heute bei der Firma SpringSource, waren mit den von J2EE zur Verfügung gestellten Methoden zum Entwickeln von Unternehmensanwendungen nicht zufrieden. J2EE bietet zum Abbilden der Geschäftslogik die Enterprise Javabeans (EJB). Diese sind jedoch nur im Zusammenspiel mit J2EE-Servern lauffähig. Stattdessen basiert Spring auf einem modularen, Pojo-basierenden (Plain Old Java Object) Programmiermodell, welches das Deployment unternehmenskritischer, EJB-ähnlicher Anwendungen auch in Servlet-Containern wie Tomcat oder Jetty ermöglichen soll.

Eine Besonderheit von Spring: Das Framework ermöglicht dem Entwickler, Prinzipien der Aspekt-orientierten Programmierung anzuwenden. Dadurch kann man beispielsweise technische Aspekte wie Transaktionen oder Sicherheit isolieren und den Code der Business-Logik davon freihalten. Spring soll ferner eine ganzheitliche Lösung bieten, um unterschiedliche Frameworks unter einem Dach zusammenzubringen. So bauen viele Projekte zum Beispiel auf einer Kombination aus Struts, Spring und Hibernate auf.

Hibernate: Hohe Flexibilität in der Datenbankschicht

Das quelloffene Persistenz-Framework "Hibernate" ergänzt die zuvor aufgeführten Systeme optimal, indem es leistungsfähige ORM-Technologien (Object Relational Mapping) zur Verfügung stellt. So ermöglicht die von Red Hat entwickelte Lösung, gewöhnliche Objekte mit Attributen und Methoden (Pojo) in relationalen Datenbanken zu speichern und aus entsprechenden Datensätzen wiederum Java-Objekte zu erzeugen. Darüber hinaus bietet Hibernate effiziente Mechanismen, auf Datenbanken zugreifen zu können, ohne Datenbankzugriffe explizit in SQL programmieren zu müssen. Abhängig vom SQL-Dialekt der eingesetzten Datenbank generiert das System dafür die entsprechenden SQL-Statements. Dadurch soll die Applikation selbst von der gewählten Datenbank unabhängig bleiben und in Zukunft leichter zu modifizieren sein.