Re:AOP + Spring

Tem um tutorial interessante a respeito que mostra uma implementação mais simples, sem a necessidade de atrelar as anotações de aspectos com o seu código fonte.

Dá uma olhada http://marcelopaesrech.blogspot.com/2012/01/aop-programacao-orientada-aspectos-e-um.html

Pessoal,

Estou pesquisando exemplo simples de AOP com Spring.
Algo como: chamar um método e por AOP, chamar um método de outra classe antes e depois da execução do primeiro método. Tenho procurado por exemplos utilizando Annotations e não tenho visto.

Se alguém tiver links, ou exemplos, por favor, me avise.

Abrçs

Aqui estão as minhas classes e configurações.

[code]<?xml version="1.0" encoding="UTF-8"?>

<aop:aspectj-autoproxy />
<bean id="simpleLogger" class="example.SimpleLogger"/>
<bean id="concatService" class="example.ConcatServiceImpl"/>

[/code]

[code]package example;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
/**
*
*/
@Aspect
public class SimpleLogger {

private static Log log = LogFactory.getLog(SimpleLogger.class);

/**
 * @param s
 */
@Before (value="execution(* example..*Service.*(..)) and args(s1,s2)")
public void logOneString(String s) {
    log.info("string=" + s);
}

public void logTwoStrings(String s1, String s2) {
    log.info("string1=" + s1 + ",string2=" + s2);
}

}[/code]

[code]package example;

public class ConcatServiceImpl implements ConcatService {
public String concat(String s1, String s2) {
return s1 + s2;
}
}[/code]

[code]package example;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Main {

public static void main(String[] args) {
    ApplicationContext context = new ClassPathXmlApplicationContext("example/simpleLoggerContext.xml");
    ConcatService concatService = (ConcatService) context.getBean("concatService");
    concatService.concat("some", "thing");
}

}[/code]