Ich bin neu bei AOP. Ich habe ein Problem wie dieses.
%Vor%bei der Verwendung von pointcut, die Methode allGetters () zu LoginAdvice-Methode, wenn ich @Before ("Ausführung (* get * ())") dann kein Fehler, aber wenn ich @Before ("allGetters ()") dann verwenden gibt den Fehler "java.lang.IllegalArgumentException: error at :: 0 kann den referenzierten pointcut allGetters nicht finden
wenn ich @Before ("Ausführung (* get * ()) & amp; & amp; innerhalb (org.suman.Model.Circle)") anstelle von Methodenname funktioniert.
Mein xml gefällt mir so:
%Vor%Bitte lösen Sie das Problem mit dem Punkt, nach dem die Methode
verwendet wirdDas Problem kann auch durch Ausführen einer Early Access-Version von JDK9 verursacht werden.
Maven bevorzugt möglicherweise eine neuere Version von Java über die JVM in PATH
.
In meinem Fall starte ich Spring mit Swagger2 über Maven auf Ubuntu 15.04, und ich habe java-8-oracle
und java-9-oracle
(und ein paar mehr Versionen) installiert. Mein java -version
, abgeleitet von PATH
, sagt 1.8.0_72
, aber wenn ich Maven starte und /usr/bin/mvn
in echo JAVA_HOME
ändere, wird /usr/lib/jvm/java-9-oracle
ausgewählt.
Exportieren von JAVA_HOME
in /usr/lib/jvm/java-8-oracle
Maven verwendet die gewünschte Version von Java, und das hat die Probleme mit AOP-Weben von Pointcuts für Spring's Abhängigkeitsinjektionsverkabelung beseitigt.
Ich hatte dieses Problem, weil das Projekt in Java 1.6 kompiliert wurde, aber der Tomcat-Server in Java 8 gestartet wurde.
Tags und Links spring-aop