Aspectj @Around schneidet alle Methoden in Java ab
Ich schreibe einen einfachen Timer-Aspekt, um alle Methoden in allen Paketen zu instrumentieren, die zu meinem Projekt gehören. Aber dann sind die Rückgabetypen der verschiedenen Methoden in diesen Klassen unterschiedlich und ich bekomme das FolgendeError:
Es funktioniert nur für Setter, aber nicht für Getter ...
Fehler: Anwenden auf einen Joinpoint, der nicht ungültig ist
und hier ist meinetimeraspect
...
@Around("execution(* com.myproject..*(..))")
public void log(ProceedingJoinPoint pjp) throws Throwable{
LOG.info("TimerAspect");
String name = pjp.getSignature().getName();
Monitor mon = MonitorFactory.start(name);
pjp.proceed();
mon.stop();
LOG.info("TimerAspect Mon" + mon);
String printStr = mon.getLabel()+","+mon.getUnits()+","+mon.getLastValue()+","+mon.getHits()+","+mon.getAvg()+","+mon.getTotal()+","+mon.getMin()+","+mon.getMax()+","+mon.getFirstAccess()+","+mon.getLastAccess();
File f = new File("target/stats.csv");
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(f, true));
bufferedWriter.write(printStr);
bufferedWriter.newLine();
bufferedWriter.flush();
bufferedWriter.close();
}
Jeder Hinweis, um dies zu beheben, wird sehr geschätzt.
Vielen Dank