AspectJ

Status
Nicht offen für weitere Antworten.

rok

Mitglied
Hallo
ich möchte per AspectJ alle public method die ausgeführt werden (außer der Main) anzeigen. Für eine bestimmte Methode geht es ja aber ich weiß nicht wie ich alle Methoden auswähle.

Danke im Voraus
 

Ralf Ueberfuhr

Bekanntes Mitglied
Löst diese Datei dein Problem? (Hab ich von früheren Versuchen vorgekramt, war unter Java1.4.)

Code:
aspect FileObserver {

    private int opened = 0;
    private int closed = 0;

    pointcut doMethod(): execution(* *(..));

    before(): doMethod(){
    	String result = "";
    	Object[] params = thisJoinPoint.getArgs();
    	for(int i=0; i< params.length; i++) {
    		if(!result.equals("")) result += ", ";
    		result += params[i].toString();
    	};
    	System.out.println("A method will be executed: " + thisJoinPointStaticPart.getSignature().getDeclaringType().getName() + "." + thisJoinPointStaticPart.getSignature().getName() + "(" + result + ")");
    }
    after(): doMethod(){
    	String result = "";
    	Object[] params = thisJoinPoint.getArgs();
    	for(int i=0; i< params.length; i++) {
    		if(!result.equals("")) result += ", ";
    		result += params[i].toString();
    	};
    	System.out.println("A method was executed: " + thisJoinPointStaticPart.getSignature().getDeclaringType().getName() + "." + thisJoinPointStaticPart.getSignature().getName() + "(" + result + ")");
    }
}
 

Ralf Ueberfuhr

Bekanntes Mitglied
P.S. Nur für public vermute ich mal Zeile 7 so:

pointcut doMethod(): execution(public *(..));

Bin mir aber nicht sicher, weil ich nicht im Thema drin bin.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben