1.aop execution 所有dao层下面的包,对应表达式:
execution(* com.yourcompany.yourproject.dao..*.*(..))
import org.aspectj.lang.annotation.Before;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.aspectj.lang.JoinPoint;
public class DaoAspect {
private static final Logger logger = LoggerFactory.getLogger(DaoAspect.class);
public void daoPackage() {}
public void logBefore(JoinPoint joinPoint) {
logger.info("Before method: {}", joinPoint.getSignature().toShortString());
}
}
2.aop execution 所有dao层下面的包所有类中find方法,对应表达式:
execution(* com.yourpackage.dao..*.find*(..))
public class FindMethodLoggingAspect {
// 定义切点,匹配所有DAO层包下的类的find方法
public void findMethodExecution() {}
// 定义前置通知,例如记录日志
public void beforeFindMethod(JoinPoint joinPoint) {
System.out.println("Before find method: " + joinPoint.getSignature().getName());
}
// 定义后置通知,例如记录日志或性能监控等
public void afterFindMethod(JoinPoint joinPoint) {
System.out.println("After find method: " + joinPoint.getSignature().getName());
}
}