@Transactional avvolge un metodo in una transazione di database: Spring ne apre una prima che il metodo venga eseguito e fa il commit quando termina normalmente — oppure esegue il rollback se solleva un'eccezione. Sotto il cofano è un proxy AOP, che è la fonte della maggior parte delle insidie.
Uso di base
{
{
accounts.debit(from, amount);
accounts.credit(to, amount);
}
}
