Blog

Ein POJO mit Annotationen ist nicht Plain

Vincent Partington

Aktualisiert Oktober 23, 2025
2 Minuten

Jeder liebt POJOs. Seit Martin Fowler, Rebecca Parsons und Josh MacKenzie den Begriff im Jahr 2000 geprägt haben, hat die Idee die Java-Welt im Sturm erobert. Erfolgreiche Frameworks wie Spring und Hibernate haben sich auf POJOs konzentriert, um die J2EE-Entwicklung zu vereinfachen.Dann kam JDK 1.5 und brachte uns Annotations. Und jetzt sind wieder alle verrückt geworden. Und mit der Behauptung, POJO's zu unterstützen, versucht die alte Technik nun wieder in Mode zu kommen.Obwohl ich keine offizielle Definition von POJO finden konnte, denke ich, dass wir von Martin Fowlers ursprünglicher Definition, dass ein POJO keine EJB ist, zu einem POJO verallgemeinern können. Ein POJO ist ein Java-Objekt, das nicht an ein bestimmtes Framework gebunden ist und daher von mehreren Frameworks in verschiedenen Situationen und Konfigurationen verwendet werden kann. Wenn Sie diese Definition akzeptieren, müssen Sie zustimmen, dass dieser annotierte POJO-Wahnsinn albern ist.

Dabei gibt es vier Probleme, vor allem mit dem Trend, dass viele dieser Anmerkungen dazu verwendet werden, Konfigurationsdaten in Ihrem Code zu speichern:

  • Sie können ein annotiertes POJO nicht kompilieren, ohne die Frameworks zu haben, die die Annotationen enthalten.
  • Die Syntax ist furchtbar, wenn viele Konfigurationsdaten eingegeben werden. Ich bin auch kein großer Fan von XML-Konfigurationen, aber Anmerkungen ersetzen einfach spitze Klammern durch eine Menge Klammern und geschweifte Klammern.
  • Wenn Sie die Konfigurationsdaten in der Klasse ablegen, müssen Sie Ihren Code neu kompilieren, um die Konfiguration zu ändern.
  • Und schließlich können Sie auf diese Weise nicht mehrere Konfigurationen für dieselbe Klasse haben, z.B. eine Klasse auf mehrere Tabellen in der Datenbank zuordnen.

(Natürlich könnten Sie die Declare-Annotationsfunktion von AspectJ 5 verwenden, um die Konfiguration getrennt zu halten. Aber das hatten wir schon, als wir XML-Konfigurationsdateien verwendet haben. Wenn Sie mit AspectJ Annotationen deklarativ hinzufügen, fügen Sie nicht nur Klammern und geschweifte Klammern hinzu, sondern auch die gesamte AspectJ-Syntax. Im Vergleich dazu sieht XML wirklich gut aus.) Ich schlage also vor, diese Dinge von nun an a-POJO's zu nennen. Sie könnten sich vorstellen, dass das eine Abkürzung für Annotated Plain Old Java Object ist, aber das meine ich nicht. ;-)

Verfasst von

Vincent Partington

Contact

Let’s discuss how we can support your journey.