Junior — Middle
@Transactional anotasyonu nasıl çalışır ve transaksyonel bütünlüğü sağlamak için hangi mekanizmaları kullanır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Java'da (genellikle Spring Framework'te) @Transactional anotasyonu, metodların veya sınıfların bir işlem kapsamında çalışması gerektiğini belirtmek için kullanılır.
Sağladıkları:
- Metoda girişte otomatik işlem başlatma.
- Metod başarıyla tamamlandığında işlemi onaylama.
- İstisnalar oluştuğunda işlemi geri alma.
Kullanılan mekanizmalar:
- Dinamik veya CGLIB proxy'ler metod çağrılarını yakalar.
- İşlem yöneticisi (
PlatformTransactionManager) işlemin yaşam döngüsünü yönetir.
Örnek:
@Service
public class UserService {
@Transactional
public void createUser(User user) {
userRepository.save(user);
// burada RuntimeException fırlatılırsa, işlem geri alınır
}
}
Bu şekilde, @Transactional veri bütünlüğünü sağlar, işlemleri otomatik olarak yönetir ve açık kod yazmaya gerek kalmadan başlatma, onaylama veya geri alma işlemlerini gerçekleştirir.