Sobes.tech
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.