注解方式
applicationContext.xml 加入下面配置
<!--Spring Aop 启用自动代理注解 -->
<aop:aspectj-autoproxy proxy-target-class="true"/>
LoggingAspect,java
package com.lingdong.spring.aop; import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component; @Order(1)
@Component
@Aspect
public class LoggingAspect {
private final static Logger logger = LoggerFactory.getLogger(LoggingAspect.class);
@Pointcut("execution(* com.lingdong.spring.aop.*(..))")
public void aspect(){}
@Before("aspect()")
public void before(JoinPoint joinPoint){
if (logger.isInfoEnabled()){
logger.info("before:"+joinPoint) ;
}
}
}
xml配置aop方式
<bean id="loggingAspect" class="com.lingdong.spring.aop.LoggingAspect"/> <!--配置Aop 切入点,切面-->
<aop:config>
<aop:pointcut id="pointcut" expression="execution(* com.lingdong.spring.aop.*.*(..))"></aop:pointcut>
<aop:aspect ref="loggingAspect">
<aop:before method="before" pointcut-ref="pointcut"></aop:before>
</aop:aspect>
</aop:config>
LoggingAspect,java
package com.lingdong.spring.aop; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; public class LoggingAspect {
private final static Logger logger = LoggerFactory.getLogger(LoggingAspect.class);
public void before(JoinPoint joinPoint){
if (logger.isInfoEnabled()){
logger.info("before:"+joinPoint) ;
}
}
}