Цель - войти в систему, если произойдет ошибка. IntelliJ правильно видит JointPoint (в левой части метода отображается «Перейти к советам AOP». Но я понятия не имею, почему он не работает, а System.out.println - тоже не работает. Кроме того, Я пытался записывать всю информацию перед каждым методом в классе, но он тоже не работал.
Метод:
@Override
public User getUser(Long id) {
Optional<User> user = userRepository.findById(id);
if (!user.isPresent()) {
UserNotFoundException exc = new UserNotFoundException( id);
//LOGGER.error(exc);
throw exc;
}
return user.get();
}
@Aspect
@Component
public class Temp {
private final Logger LOGGER = LogManager.getLogger(this.getClass());
@Pointcut("execution(public * com.UserServiceImpl.*(..))")
public void callAtUserServicePublic(){
}
@AfterThrowing(value = "callAtUserServicePublic()", throwing = "exc")
public void afterUserNotFoundException(UserNotFoundException exc){
System.out.println(exc);
LOGGER.error(exc);
}
@Before("callAtUserServicePublic()")
public void temp(JoinPoint jp){
System.out.println(jp.toString());
LOGGER.info(jp.toString());
}
}