Bonjour,

Je suis en Spring 2.5

J'ai un petit problème dans l'application des advices avec Spring AOP :

Au départ j'ai le code suivant :
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
 
...
...
    public void insert(InputStream inputStream, AbstractDocument document) throws FileSystemException {
	System.out.println("Inside insert");
    }
 
    public void update(InputStream inputStream, AbstractDocument document) throws FileSystemException {
 
	System.out.println("Inside update");
	this.insert(null, null);
 
}

Et la définition d'un advice comme suit :

Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
	@After("(documentInsertOperation() || documentUpdateOperation() || documentDeleteOperation()) "
			+ "&& args(..,document)")	
	public void backup(JoinPoint jp, AbstractDocument document) {
 
	    System.out.println("Je suis un advice @After !!! de la méthode " + jp.getSignature().getName());
...
...
 
	/*
	 * Pointcuts definitions
	 */
	@Pointcut("execution(* dgt.tss.services.DocumentService.insert(..))")
	private void documentInsertOperation() {
	}
 
	@Pointcut("execution(* dgt.tss.services.DocumentService.update(..))")
	private void documentUpdateOperation() {
	}
...
...

Et une classe de test unitaire avec une méthode pour tester l'AOP sur mes méthode update et insert :

Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
 
...
...
    public void testAOP() {
 
	try {
	    documentService.update(null, null);
 
 
	} catch (FileSystemException e1) {
	    e1.printStackTrace();
	}
...
...
    }

Et je vois dans la console :
Inside update
Inside insert
Je suis un advice @After !!! de la méthode update
Alors que je m'attends à voir :
Inside update
Inside insert
Je suis un advice @After !!! de la méthode insert
Je suis un advice @After !!! de la méthode update
On dirait que l'advice ne s'applique pas à ma méthode insert ? des idées ? Mes pointcuts ne sont pas biens définis ? un problème avec l'utilisation de this dans this.insert(null, null);

Merci d'avance pour votre aide.