我在方法上使用註釋。每當有這樣的警告時,我想用aop攔截它。我錯過了什麼。spring aop not firing for annotation
<bean id="emailAdvice" class="com.merc.spring.aop.advice.MultiThreadEmailAdvice"/>
<aop:config>
<aop:aspect ref="emailAdvice">
<aop:around
method="fork"
pointcut="execution(* org.springframework.mail.javamail.JavaMailSenderImpl.send(..))"/>
</aop:aspect>
<aop:aspect ref="emailAdvice">
<aop:around method="sendEmailAdvice" pointcut="@annotation(sendMailAnnotation)" arg-names="sendMailAnnotation"/>
</aop:aspect>
</aop:config>
@SendMailAnnotation()
public void testAnnotationEmail() {
System.out.println("send an email");
}
@Aspect
public class MultiThreadEmailAdvice {
public void sendEmailAdvice(ProceedingJoinPoint pjp, SendMailAnnotation sendMailAnnotation) throws Throwable {
System.out.println("before method execution");
pjp.proceed();
System.out.println("after method execution");
System.out.println(sendMailAnnotation.from());
}
}
如果我這樣做,我得到以下錯誤java.lang.IllegalArgumentException:錯誤在:: 0正式無約束切入點 – user373201
''必須替換爲您的註釋包前' com.merc.spring.aop.advice',已更新答案 –
正是我所知 –
user373201