Spring - Advice para Log

1 resposta
von.juliano
Pessoal, estou tentando criar um Advice que deve fazer o log antes, depois e no lançamento de uma exceção. É a primeira vez que tento fazer isso e estou com dificuldades, no meu context.xml eu coloquei:
<aop:config>
	<aop:aspect ref="logAdvice">
		<aop:pointcut id="performance" expression="execution(* *.*(..))" />

		<aop:before method="before" pointcut="performance" />
		<aop:after-returning method="after" pointcut="performance" />
		<aop:after-throwing method="afterThrowing" pointcut="performance" />
	</aop:aspect>
</aop:config>
E dá a seguinte Exception:
Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.aop.aspectj.AspectJPointcutAdvisor]: Constructor threw exception; nested exception is java.lang.IllegalArgumentException: Pointcut is not well-formed: expecting '(' at character position 0
performance
^
Estou no caminho certo? Tem uma forma mais fácil de fazer isso? Obrigado! :thumbup:

1 Resposta

von.juliano
Estudando a documentação, removi o que tinha colocado no xml, e deixei apenas:
<aop:aspectj-autoproxy/>
então anotei a classe:
@Aspect
public class LogAdvice {

	@Pointcut("execution(* br.com.projeto.dao.Dao.*(..))")
	public void before() {
		System.out.println("LogAdvice");
	}

	@Pointcut("within(br.com.projeto.dao.*)") // tentativa diferente
	public void afterReturning(){
		System.out.println("LogAdvice");
	}
}
Agora não dá erro, mas ainda não funciona, os System.out não são chamados em nenhum momento. Será que falta alguma coisa? :roll:
Criado 9 de janeiro de 2009
Ultima resposta 9 de jan. de 2009
Respostas 1
Participantes 1