Ich bin neu mit Frühling AOP und ich frage mich, ob es möglich ist, einen Wert von @Before
zur Methode zurückzukehren und diese Variable im Innern zu verwenden, zum Beispiel:Frühling AOP @Before Beratung Rückgabewert
@Before("@annotation(CheckUserReservationPermission) && args(username,idReservation)")
public Reservation userCreationAdvice(ProceedingJoinPoint pjp, String username, Integer idReservation) throws Throwable {
Reservation reservation = reservationServices.findById(idReservation);
if (!reservation.getUser().getUsername().equals(username))
throw new PermissionException("You can't delete the reservation with id: " + idReservation);
return reservation;
}
und meine Methode:
@Override
@CheckUserReservationPermission
public void deleteReservationById(String username, Integer idReservation) throws QueryException {
synchronized(ReservationsSchedulerServicesImpl.class){
databaseReservationServices.deleteReservationById(username, reservation);
}
}
Gibt es eine Möglichkeit, dies zu machen? Ansonsten muss ich die Abfrage wiederholen. Dank
UPDATE: Mit @Around
kann ich diesen Code haben, aber wie kann ich die Variable in deleteReservationById
Methode abrufen?
@Around("@annotation(CheckUserReservationPermission) && args(username,idReservation)")
public Object userCreationAdvice(ProceedingJoinPoint pjp, String username, Integer idReservation) throws Throwable {
Reservation reservation = reservationServices.findById(idReservation);
if (!reservation.getUser().getUsername().equals(username))
throw new PermissionException("You can't delete the reservation with id: " + idReservation);
return pjp.proceed(new Object[] {reservation});
}
können wir um Rat verwenden? – VedX
Nein, du kannst nicht. Sie können nur einen Wert aus einem Rund-Tipp zurückgeben. –
und mit einem um Rat kann ich die Variable mit der Methode verwenden? – luca