2008-11-28 9 views
7

Welches ist das beste Java-Tool für die aspektorientierte Programmierung?Aspektorientierte Programmierung in Java

Die Anforderungen an ein Werkzeug sind natürlich IDE-Unterstützung, Ausdruckskraft und ordnungsgemäße Dokumentation.

Antwort

6

JBossAOP und AspectJ sind zwei häufig verwendete, ausgereifte Frameworks für AOP. Eine andere populäre Wahl ist Frühling AOP, aber es fehlen einige der Eigenschaften der anderen zwei.

Sowohl JBossAOP als auch AspectJ haben ähnliche Funktionen, mit dem großen Unterschied, dass AspectJ auf Erweiterungen der Sprache Java setzt, JBoss AOP dagegen nicht.

Wenn Ihre AOP-Anforderungen ziemlich einfach sind, sollten Sie auch eine Bibliothek für die Manipulation von Bytecodes in Betracht ziehen, z. B. ASM. Ich habe ASM verwendet, um einfachen 'around-advice' (dh Code, der vor und nach Methodenaufrufen injiziert wird) zu implementieren, und es erwies sich als eine leichtere Alternative zu JBossAOP. ASM ist sauber gestaltet und gut dokumentiert.

+0

Ok! Danke, ich muss in JBoss AOP schauen. – Bleadof

3

Ich würde sagen AspectJ. Soweit ich weiß, fehlt der IDE-Teil, aber Dokumentation und Ausdruckskraft gehören zu den besten der AOP-Frameworks, die ich gesehen habe.

+1

Brilliant! Ich habe den AspectJ als Teil der Eclipse-IDE gesehen, daher denke ich, dass zumindest eine gewisse Unterstützung für das Tooling verfügbar ist ... – Bleadof

2

Wenn Sie bereits Spring verwenden, haben verwaltete Objekte bereits AOP support. Obwohl es nicht so flexibel wie AspectJ ist, erfordert es nicht den Vorkompilierungsschritt, den AspectJ macht.

0

In Bezug auf Feder AOP Unterstützung. Standardmäßig ist es nur für Spring verwaltbare Objekte relevant und AFAIK basiert auf AspectJ.

Ich habe es noch nicht selbst überprüft, aber es sieht so aus, als ob es die Verwendung von AOP und für andere Objekte erlaubt (z. B. Ladezeit unter Tomcat weben). Details sind here.

Verwandte Themen