[Spring 2.5][AOP][XML] Configuration d'un Logger
Bonjour,
J'essaie d'utiliser les fonctionnalités de Spring (version 2.5) permettant la programmation par aspects mais quelque chose semble m'échapper. J'arrive parfaitement à faire des aspects avec l'API AspectJ mais je n'arrive pas à utiliser les aspects configuré via XML.
J'ai essayé ici de faire un exemple simple dont le but est de logger la fonction doIt.
Jars dans mon projet :
- spring.jar
- commons-loggings.jar
- aspectjweaver.jar
Mon unique classe :
- doIt : la fonction a loggué.
- log : l'aspect qui sera utilisé pour loggé ma fonction doIt.
- main : permet d'initialiser spring et de lancer la fonction doIt.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
public class Logger {
public void doIt() {
System.out.println("DoIt");
}
public void log() {
System.out.println("Log!");
}
public static void main(String args[]) {
ClassPathResource resource = new ClassPathResource("applicationContext.xml");
XmlBeanFactory factory = new XmlBeanFactory(resource);
Logger logger = (Logger)factory.getBean("logger");
logger.doIt();
}
} |
Mon fichier de configuration :
- logger : le bean référençant mon unique classe.
- pointcut pour la fonction doIt.
- before aspect utilisant la fonction log de mon unique classe Logger.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
<?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/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
<bean id="logger" class="Logger"/>
<aop:config>
<aop:pointcut id="doItOperation" expression="execution(* doIt(..))"/>
<aop:aspect ref="logger">
<aop:before pointcut-ref="doItOperation" method="log"/>
</aop:aspect>
</aop:config>
</beans> |
Merci.