Annotationen und AspekteAuf TheServerSide ist
hier gerade eine Diskussion in Gange, bei der es um Annotationen geht. Gavin King (der Hibernate Erfinder) mahnt an, dass Annotationen deutlich umfangreichere Möglichkeiten zur Überprüfung und Validierung haben sollten.
An dieser Stelle habe ich das Gefühl, dass Annotationen übertrieben werden. Sie sollen nur Methoden, Klassen usw. mit Informationen versehen. Schon die Idee, dass es direkt eine Konfiguration des Elements ist, ist eher weniger richtig (siehe auch den Blog-Eintrag zu Adrian Colyers Vortrag auf der WJAX). Die Frage ist, wie man die Semantik abbildet. Da bietet sich AspectJ an.
Wenn man nun dieses Werkzeug verwendet, kann man die Aktivierung eines Aspekts nicht nur von einer Annotation abhängig machen, sondern auch noch zusätzliche Einschränkungen vornehmen z.B. anhand ders Klassennahmens oder des Methodennamens, der Parameter usw. Eben die komplette Mächtigkeit der AspectJ Pointcut Sprache. Und man kann auch Fehler bei der Kompilierung anzeigen, wenn der Aspekt an der falschen Stelle ansetzt.
Mal sehen, vielleich verwendet ja auch die JBoss Group in Hibernate eines Tages AspectJ...
J for Java |
I for Internet, iMac, iPod and iPad |
Me for me