Skip to content

21. Fazit

Fassen wir zusammen, was in diesem Dokument vorgestellt wurde:

  • die Grundlagen der Webprogrammierung in Java mit Servlets und Seiten JSP
  • eine Einführung in die Architektur MVC
  • eine Einführung in die 3-Tier-Architektur
  • eine Einführung in Spring IoC
  • Beispiele zur Veranschaulichung dieser Punkte

Wir gehen davon aus, dass der Leser, der bis hierher gekommen ist, bereit ist, seine eigenen Webanwendungen in Java zu entwickeln. Er ist ebenfalls bereit, sich mit anderen Entwicklungsmethoden auseinanderzusetzen, die den in diesem Dokument behandelten ähnlich sind. Hier noch einmal die Architektur der hier entwickelten Webanwendungen im Überblick:

Für einfache Anwendungen ist diese Architektur ausreichend. Wenn man mehrere Anwendungen dieser Art geschrieben hat, stellt man fest, dass die Servlets zweier verschiedener Anwendungen:

  1. denselben Mechanismus verwenden, um zu bestimmen, welche Methode [doAction] ausgeführt werden muss, um die vom Benutzer angeforderte Aktion zu bearbeiten
  2. sich tatsächlich nur durch den Inhalt dieser Methoden [doAction] unterscheiden

Die Versuchung ist dann groß,

  • die Verarbeitung (1) in ein generisches Servlet auszulagern, das nichts über die Anwendung weiß, die es nutzt
  • die Verarbeitung (2) an externe Klassen zu delegieren, da das generische Servlet nicht weiß, in welcher Anwendung es verwendet wird
  • die vom Benutzer angeforderte Aktion mithilfe einer Konfigurationsdatei mit der Klasse zu verknüpfen, die sie verarbeiten soll

Es sind Werkzeuge, oft als „Frameworks“ bezeichnet, entstanden, um Entwicklern die oben genannten Erleichterungen zu bieten. Das älteste und wahrscheinlich bekannteste davon ist Struts (http://struts.apache.org/). Jakarta Struts ist ein Projekt der Apache Software Foundation (www.apache.org). Dieses Framework wird unter (http://tahe.developpez.com/java/struts/) beschrieben.

Das erst kürzlich erschienene Spring-Framework (http://www.springframework.org/) bietet ähnliche Funktionen wie Struts. Es handelt sich dabei um das Modul „Spring MVC“. Seine Verwendung wurde in mehreren Artikeln beschrieben (http://tahe.developpez.com/java/springmvc-part1/).

Spring beschränkt sich nicht nur auf das Konzept der MVC-Schicht einer 3-Tier-Anwendung. Es ist auch in Anwendungen außerhalb des Webs nützlich.

So haben wir unseren Kurs mit der Implementierung einer MVC-Architektur in einer 3-Tier-Architektur [web, metier, dao] anhand eines einfachen Beispiels zur Verwaltung einer Personenliste abgeschlossen.

In Version 1 der Anwendung wurde die Personenliste im Arbeitsspeicher gehalten und verschwand beim Beenden der Webanwendung. In den anderen Versionen wird die Personenliste in einer Datenbanktabelle gespeichert. Wir haben vier verschiedene SGBD verwendet: Firebird, Postgres, MySQL und SQL Server Express.

Dank Spring IoC konnte die [web]-Schicht der Version 1 in den nachfolgenden Versionen vollständig beibehalten werden. Damit haben wir gezeigt, dass sich ntier-Architekturen mit unabhängigen Schichten aufbauen lassen.

Bei den Versionen, die eine Datenbank verwenden, haben wir den Beitrag von Spring zum Aufbau der Schichten [dao] und [service] aufgezeigt. Dank der Integration von Spring in iBATIS konnten wir vier Versionen erstellen, die sich lediglich durch ihre Konfigurationsdateien unterscheiden. In allen vier Versionen wurde dieselbe Klasse [DaoImplCommon] zur Implementierung der Schicht [dao] verwendet. Um ein spezifisches Problem mit SGBD Firebird zu beheben, mussten wir diese Klasse ableiten, ohne sie jedoch zu ändern.

Schließlich haben wir gezeigt, wie wir mit Spring Transaktionen auf der Ebene der Schicht [service] deklarativ verwalten können.

Dem Leser sei empfohlen, sich mit dem gesamten Funktionsumfang dieses Produkts vertraut zu machen.