Spring高手之路19——Spring AOP注解指南
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;
@Aspect
@Component
public class LoggingAspect {
// 定义一个切点,匹配所有com.example.service包下的所有类的所有方法
@Pointcut("execution(* com.example.service..*.*(..))")
public void serviceLayerPointcut() {
}
// 在切点方法执行之前执行此方法
@Before("serviceLayerPointcut()")
public void logBeforeServiceLayerMethod(JoinPoint joinPoint) {
String methodName = joinPoint.getSignature().getName();
Object[] args = joinPoint.getArgs();
System.out.println("Before: " + methodName + "(" + Arrays.toString(args) + ")");
}
}
这个示例代码定义了一个日志切面,它会在com.example.service
包及其子包下所有类的所有方法执行前打印日志。这里使用了@Pointcut
注解来定义切点,并使用@Before
注解指定在切点方法执行前执行logBeforeServiceLayerMethod
方法。这个例子展示了如何使用注解来简化AOP的配置,并提高代码的可读性和可维护性。
评论已关闭