Ich habe den folgenden Aspekt: keine passenden Factory-Methode gefunden: Factory-Methode 'aspectOf()'
package trc.suivi.aspects;
import java.util.Date;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import trc.suivi.domain.EvenementPli;
import trc.suivi.domain.Pli;
import trc.suivi.domain.TypeEvenement;
import trc.suivi.repository.EvenementPliRepository;
public aspect PliEventManagerAspect {
private static final Logger log = Logger.getLogger(PliEventManagerAspect.class);
@Autowired
private EvenementPliRepository evenementPliRepository;
public PliEventManagerAspect() {
}
pointcut catchEMPersist(Pli pli) : (execution(* trc.suivi.repository.PliRepository+.save(*)) && args(pli));
pointcut catchEMPersist() : (execution(trc.suivi.domain.Pli.persist()));
after(Pli pli) returning: catchEMPersist(pli) {
log.debug("catchEMPersist(pli)");
EvenementPli ev = new EvenementPli();
ev.setDateCreation(new Date());
ev.setType(TypeEvenement.creation);
ev.setMessage("Création d'un pli");
evenementPliRepository.save(ev);
}
after() returning: catchEMPersist() {
log.debug("catchEMPersist()");
EvenementPli ev = new EvenementPli();
ev.setDateCreation(new Date());
ev.setType(TypeEvenement.creation);
ev.setMessage("Création d'un pli");
evenementPliRepository.save(ev);
}
}
Und den folgenden XML-config:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
<aop:aspectj-autoproxy />
<bean class="trc.suivi.aspects.PliEventManagerAspect" factory-method="aspectOf"/>
</beans>
Wenn ich meine app starten, erhalte ich dies ist:
No matching factory method found: factory method 'aspectOf()'. Check that a method with the specified name exists and that it is static.
Ich bin ziemlich verblüfft, da ich ziemlich sicher bin, dass diese Konfiguration zuvor gut funktionierte. Was ist mehr ist dies ein Spring Roo Projekt, so dass alle aspectJ config in Ordnung sein sollte.
Kann mir bitte jemand helfen?
Ich konnte aufgrund Ihres Vorschlags herausfinden, warum der Aspekt nicht kompiliert wurde. Danke vielmals. – balteo
@balteo, können Sie angeben, was die Antwort auf Ihr spezielles Problem war? – alfredaday
Mein Aspekt hatte nicht kompiliert. Wenn deins nicht kompiliert wird, versuchen Sie die obige Konfiguration, Sie werden die Kompilierungsfehler sehen. – balteo