深入理解Spring Boot中的AOP应用:从基础组件到高级功能的实现
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;
@Aspect
@Component
public class LoggingAspect {
// 匹配com.example.service包下所有类的所有方法
@Before("execution(* com.example.service..*.*(..))")
public void logBeforeServiceCall(JoinPoint joinPoint) {
String methodName = joinPoint.getSignature().getName();
Object[] args = joinPoint.getArgs();
System.out.println("Before: " + methodName + "(" + Arrays.toString(args) + ")");
}
}
这个简单的例子展示了如何使用Spring AOP来记录服务层的方法调用。@Aspect
注解声明这是一个切面类,@Component
注解将其加入到Spring容器中。@Before
注解表示在匹配的方法执行前执行logBeforeServiceCall
方法。JoinPoint
对象提供了目标方法名和参数信息,可以用于日志记录。
评论已关闭