Java 如何在单个方法中应用Spring AOP
实际上,我在一个SpringMVC项目中工作,我在我的项目中成功地应用和配置了SpringAOP,但我想在单个方法上应用SpringAOP,比如我想检查其工作与否的方法 这是我的方面代码:Java 如何在单个方法中应用Spring AOP,java,spring,spring-mvc,spring-aop,Java,Spring,Spring Mvc,Spring Aop,实际上,我在一个SpringMVC项目中工作,我在我的项目中成功地应用和配置了SpringAOP,但我想在单个方法上应用SpringAOP,比如我想检查其工作与否的方法 这是我的方面代码: @Pointcut("execution(* com.xyz.dao..*.*(..))") public void generalPointCut() { } @Before("generalPointCut()") public void logBefore(JoinPo
@Pointcut("execution(* com.xyz.dao..*.*(..))")
public void generalPointCut() {
}
@Before("generalPointCut()")
public void logBefore(JoinPoint joinpoint) {
Object clazz = joinpoint.getTarget().getClass().getName();
String methodName = joinpoint.getSignature().getName();
log.info("Entring in Method" + methodName + " in Calss " + clazz);
}
(评论后的后续行动)
您可以在切入点执行表达式中任意精确。例如,如果您希望在方法名称(包括返回类型和args签名)方面具有超特定性,它将如下所示:
@Pointcut("execution(public String com.xyz.dao.findMyEntity(Long))")
您已经在拦截
com.xyz.dao
包和子包中的所有方法/类,方法是使用*
作为通配符
正如您将在示例中看到的,您可以深入到方法名称级别。我知道它适用于com.xyz.dao。包和子包但是如果我不想在这个包中使用一些方法,那么我应该怎么做?修改后的答案添加一个例子如果你觉得这个答案有用,你可以投票/接受它