Spring之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 logBeforeServiceCalls(JoinPoint joinPoint) {
String methodName = joinPoint.getSignature().getName();
Object[] args = joinPoint.getArgs();
System.out.println("Before: " + methodName + " with arguments: " + Arrays.toString(args));
}
}
这个例子展示了如何创建一个简单的日志切面,它会在任何com.example.service
包下的类的任何方法被调用前打印日志。这个例子使用了@Aspect
注解来标识这是一个切面,并且使用了@Component
注解来将其作为Spring的一个Bean进行管理。@Before
注解指定了切点和建议的连接点,在这个例子中是所有com.example.service
包下的方法执行前。JoinPoint
对象用于获取目标方法名和参数信息。
评论已关闭