Question propagation advices Spring
Help!
Je veux utiliser Spring afin de logger mon programme en utilisant ces capacites AOP.
Or les seuls methodes loggées sont les methodes "top level" ,les methodes appeles dans les methodes "top level" ne sont pas
loggées.
Voici un example
J'ai la classe suivante:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| class A {
public void m2()
{
//fais un truc
}
public void m1();
{
//appel a m2()
m2();
}
} |
Puis une classe
Code:
1 2 3 4 5 6 7 8 9 10 11
|
test(
public static void main(String[] args) throws Exception {
ApplicationContext context = new ClassPathXmlApplicationContext( new String[] {"SpringContext.xml"} );
A a = (A) context.getBean("beanA");
a.m1();
} |
Dans ce cas l'appel a la methode m1 est bien loggé par contre dans cette methode l'appel a la méthode m2 n'est pas loggé.
Si je fais a.m2() la ca fonctionne.
Mon springContext.xml
Code:
1 2 3 4 5 6 7
| <aop:config>
<aop:pointcut id="servicePointcut" expression="execution( * *(..))"/>
<aop:aspect id="loggingAspect" ref="monLogger">
<aop:before method="logMethodEntry" pointcut-ref="servicePointcut"/>
</aop:aspect>
</aop:config> |
Y'a t'il un principe qui m'aurait echappe?Ou ma faconde faire?
D'avance merci.