Dúvida com Spring e AOP para LOG

Bom dia pessoal, estou com uma dúvida de uma solução melhor, da que eu implementei :stuck_out_tongue:
eheheheheh

estou utilizando spring 3 e estou querendo utilizar aop para poder fazer log dos meus metodos de negocio, atravez de anotações

olhando na internet(google) e procurando adaptar, cheguei na seguinte implementação

spring-config.xml

<?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:p="http://www.springframework.org/schema/p"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" 
	default-autowire="byName"
	xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
            http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">

...

	<bean id="contextPointcut" class="org.springframework.aop.support.annotation.AnnotationMatchingPointcut">
		<constructor-arg type="java.lang.Class" value=" " />
		<constructor-arg type="java.lang.Class" value="br.com.carlos.endereco.log.annotation.LogAnnotation" />
	</bean>
	
	<bean id="contextAdvisorBefore" class="org.springframework.aop.support.DefaultPointcutAdvisor">
		<constructor-arg ref="contextPointcut" />
		<constructor-arg>
			<bean class="br.com.carlos.endereco.log.aop.SimpleBeforeAdvice" />
		</constructor-arg>
	</bean>
	
	<bean id="contextAdvisorAfter" class="org.springframework.aop.support.DefaultPointcutAdvisor">
		<constructor-arg ref="contextPointcut" />
		<constructor-arg>
			<bean class="br.com.carlos.endereco.log.aop.SimpleAfterAdvice" />
		</constructor-arg>
	</bean>	

...

LogAnnotation.java

package br.com.carlos.endereco.log.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target( { ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
public @interface LogAnnotation {
}

SimpleAfterAdvice.java

package br.com.carlos.endereco.log.aop;

import java.lang.reflect.Method;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.aop.AfterReturningAdvice;

public class SimpleAfterAdvice implements AfterReturningAdvice {

	@Override
	public void afterReturning(Object valueReturn, Method method, Object[] parameters, Object bean) throws Throwable {
		Log logger = LogFactory.getLog(bean.getClass());
		logger.info(method.getName() + " - fim");
		logger.debug("Retorno metodo: " + valueReturn.toString());
	}
}

SimpleBeforeAdvice.java

package br.com.carlos.endereco.log.aop;

import java.lang.reflect.Method;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.aop.MethodBeforeAdvice;

public class SimpleBeforeAdvice implements MethodBeforeAdvice {

	@Override
	public void before(Method method, Object[] parameters, Object bean) throws Throwable {
		Log logger = LogFactory.getLog(bean.getClass());
		logger.info(method.getName() + " - inicio");
		logger.debug("Paramentros do metodo: ");
		for (int i = 0; i < parameters.length; i++) {
			logger.debug(parameters[i].toString() + "\n");
		}
	}
}

e no meu service eu faço o seguinte

ConsultaEnderecoServiceImpl.java

public class ConsultaEnderecoServiceImpl implements ConsultaEnderecoService {
	
	@Resource
	private ConsultaEnderecoDao consultaEnderecoDao;
	
	@Override
	@LogAnnotation
	public List<Endereco> consultarEndereco(String cep) {
		return convertToEndereco(consultaEnderecoDao.consultarEndereco(cep));
	}

...

gostaria de tirar do arquivo spring-config.xml os beans contextAdvisorBefore e contextAdvisorAfter e se possivel ateh o contextPointcut :stuck_out_tongue:

teria como fazer isso?

alguem saberia me ajudar a fazer tais alterações?

desde já agradeço a atenção!