2016-07-30 26 views
0

In meiner Web-Anwendung habe ich drei Module, AB und C. B hängt von A und C hängt von B. Jetzt möchte ich einen Aspekt definieren das Verhalten der Methoden in Modul B.Spring AOP Pointcut und Beratung in separaten Modul

Wenn ich den Aspekt nicht in demselben Modul B definieren möchte, sollte ich dann den Aspekt in Modul A oder C definieren? Oder spielt es überhaupt keine Rolle?

Ich frage mich, ob Aspekt Weben im Frühjahr von Build-Abhängigkeit betroffen ist.

Antwort

0

Es hängt davon ab, welche Art von Aspekt Weberei Sie fragen. Die Art des Webens, die Spring macht, geschieht während des Aufbaus des Containers. So können Sie neue Aspekte zu einem späteren Zeitpunkt perfekt zu bereits kompilierten und verpackten Klassen weben. Mit dem Kontext, den Sie eingeführt haben, erkläre ich normalerweise Aspekte im C-Modul, das meine Anwendung ist, und lasse die Bibliotheken A und B in Ruhe.

+0

Danke! Ich mache das Gleiche. Aber der Aspekt wird für keine Methode in Modul B aufgerufen, aber er wird für Methoden in C aufgerufen. Intellij zeigt, dass Pointcut-Ausdrücke korrekt sind und auf die erforderlichen Methoden in B angewendet werden. Eine Idee zu dem, was das verursacht? – Aarkan

+0

Sind die Objekte des Moduls B, auf denen Sie Methoden aufrufen, Spring-Beans, definiert als '' Elemente oder Stereotypen irgendeiner Art, die mit einem' 'in den Container gebracht werden? –

+0

Ja, das sind Frühlingsbohnen, die von @Service kommentiert wurden. Diese Beans werden ordnungsgemäß instanziiert und funktionieren ansonsten normal. – Aarkan