GUJ
Notícias, artigos e o maior fórum brasileiro sobre Java
home
fórum
notícias
tópicos recentes
empregos
artigos
Bem-vindo ao GUJ.
Crie seu login
, ou digite-o para logar no site.
Usuário:
Senha:
Dúvida com Spring e AOP para LOG
Índice dos Fóruns
»
Java Avançado
Autor
Mensagem
17/03/2010 10:15:57
Assunto:
Dúvida com Spring e AOP para LOG
cezbatistao
JavaChild
Membro desde: 18/11/2002 13:20:19
Mensagens: 132
Localização: Campinas
Offline
Bom dia pessoal, estou com uma dúvida de uma solução melhor, da que eu implementei
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
teria como fazer isso?
alguem saberia me ajudar a fazer tais alterações?
desde já agradeço a atenção!
Índice dos Fóruns
»
Java Avançado
Ir para:
Selecione um Fórum
Notícias
Assuntos gerais (Off-topic)
MundoJ - Artigos, Notícias e Debates
Artigos e Tutoriais
Java Básico
Java Avançado
Ferramentas, Frameworks e Utilitários
Desenvolvimento Web
Interface Gráfica
Google Android e Java Micro Edition (ME)
Certificação Java
Persistência: Hibernate, JPA, JDBC e outros
Java Enterprise Edition (Java EE)
Frameworks e Bibliotecas brasileiros
RIA - Flex, JavaFX e outros
Arquitetura de Sistemas
Metodologias de Desenvolvimento e Testes de Software
JavaScript
Ruby & Ruby on Rails
Outras Linguagens
Powered by
JForum 2.1.8
©
JForum Team