问题
Is there a way to create a custom, or use an existing, annotation to trigger code to run when the annotated method is called? Preferably, I would like to use Spring libraries.
For example:
@SendEmail("templateName")
public void doSomething() {
log.info("Something is happening");
}
public void sendEmail(String templateName) {
// This method is called everytime doSomething() is called
log.info("Sending email using template " + templateName);
}
回答1:
@Component
@Aspect
public class Mail {
@After("execution (@com.yourdirectoryofyourcustomAnnotation.SendMail * *(..))")
public void sendEmail(JointPoint jp){
// it will send a mail after every method which tagged by your annotation
}
}
来源:https://stackoverflow.com/questions/37025674/run-another-function-when-an-annotated-method-is-called