Я пытаюсь создать Aspect, который запускается после каждого вызова save () Spring JpaRepository. Я определил свой аспект следующим образом:
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Aspect
@Component
@Slf4j
public class ProcessAspect {
@Autowired
private ProcessService processService;
@AfterReturning(value = "execution(* com.domain.control.repository.ProcessDao.save())))",
returning = "result")
private void propagateProcess(JoinPoint joinPoint, Object result) {
log.info("Aspect is working, congratulations. Jointpoint {} , result {}", joinPoint, result.toString());
Process process = (process) result;
// do something on the object returned by save()
processService.createOrUpdateProcess(process);
}
}
Мой репозиторий определен следующим образом:
@Repository
public interface ProcessDao extends JpaRepository<Process, String>
Если я настрою его таким образом, то аспект не будет работать.
Как я могу настроить свой аспект для работы после общих методов репозитория JPA?