I have written code to configure aspects around the bean methods but the advice method doesn't get called. When I call OnlineFormSubmissionServices.processOnlineFormSubmission() function from my page controller, I expect to see the logs given in my MailingAspect class to be logged. But none of the advices are called. I have defined a @Aspect MailingAspect class
@Aspect
public class MailingAspect {
@Before("execution(* com.modules.onlineforms.services.OnlineFormSubmissionServices.insertOnlineForm(..))")
public void beforeMail(JoinPoint joinPoint) { // the pointcut signature
log.error("beforeMail() is running!");
log.error("hijacked : " + joinPoint.getSignature().getName());
log.error("******");
}
@Before("execution(* com.modules.onlineforms.services.OnlineFormSubmissionServices.createEmail(..)) && args(yourString,..)")
public void mailAfterReturning(JoinPoint joinPoint, String yourString) {
// result should be in this format
log.error("mailAfterReturning() is running!");
log.error("hijacked : " + joinPoint.getSignature().getName());
log.error("Method returned value is : " + yourString);
log.error("******");
}
@After("execution(* com.modules.onlineforms.services.OnlineFormSubmissionServices.insertOnlineForm(..))")
public void mailAfter(JoinPoint joinPoint) {
System.out.println("mailAfter() is running!");
System.out.println("hijacked : " + joinPoint.getSignature().getName());
System.out.println("******");
}
}
My bean OnlineFormSubmissionServices is as below
public class OnlineFormSubmissionServices {
public String processOnlineFormSubmission(HttpServletRequest request, int publicationId){
String strReturnVal = "";
strReturnVal = insertOnlineForm(request, publicationId);
if(strReturnVal.contains("success~")){
createEmail(strReturnVal); // this is an Aspects method
}
return strReturnVal;
}
// ...
public String insertOnlineForm(param1, param2){
}
public String createEmail(String sParam){
log.error("createEmail "+sParam);
return sParam;
}
}
And my bean configuration is as below
@Configuration
@EnableAspectJAutoProxy
public class AppConfig {
@Bean
public OnlineFormSubmissionServices onlineFormSubmissionServices() {
OnlineFormSubmissionServices onlineFormSubmissionServices = new OnlineFormSubmissionServices();
log.error("Inside OnlineFormSubmissionServices initialization ");
return onlineFormSubmissionServices;
}
@Bean
//Aspect
public MailingAspect mailingAspect() {
MailingAspect mailingAspect = new MailingAspect();
log.error("Inside MailingAspect initialization ");
return mailingAspect;
}
}
Can someone tell me what i am doing wrong