2009-02-17 19 views
5

Çalıştığım proje, tüm BRIDER BRAVEZ'İNDE, düz JDBC veri erişimini kullanıyor ve herhangi bir işlem yapmıyor. İşlemleri kullanmak ve veri erişim yöntemlerinin nasıl yazıldığını basitleştirmek, özellikle şu anda yapılan bazı değişiklikler ile önemli olduğunu düşünüyorum. Proje oldukça uzun bir süredir devam ediyor ve bir ORM çerçevesine uygun değil. Aynı zamanda çok sayıda Singleton (ugh) kullanır ve bağımlılık enjeksiyonunu kullanabilmesi için çözülme adil bir iş olurdu ve bunu şimdi yapmamız gerektiğini kimseye ikna edemeyeceğimi düşünmüyorum.IoC kabı dışında basit Spring JDBC işlemleri nasıl yapılır?

Spring JDBC'nin arabirimini özellikle SimpleJdbcTemplate aracılığıyla beğeniyorum. Benim sorum, her veri erişim yönteminde veya Spring IoC konteynerini veya AOP'yi kullanarak programsal olarak herhangi bir şey ayarlamak zorunda kalmadan, bunun için bazı basit (sunucu başına istek) işlemlerin nasıl etkinleştirileceğidir. SimpleJdbcTemplate 'a benzer bir arabirim ile biten kendi mimarim ile oynadım ve bir istek bağlamında yapılan bir istekte yerel bir bağlantı ve işlem kullanabilir (ServletRequestListener bir ThreadLocal ile). İyi çalışıyor gibi görünüyor, ama Spring JDBC gibi iyi bir dış kütüphane kullanmayı tercih ederim.

Bu konuda herhangi bir deneyimi olan var mı?

cevap

5

Programmatic Transaction Management'da açıklandığı gibi TransactionTemplate ve TransactionCallback kullanabilirsiniz.

+0

Bu, tam olarak nasıl çalıştığımı değil, TransactionTemplate kullanarak çağrıları daha yüksek bir uygulama düzeyinde kullanmak gerektiğinden, yalnızca JdbcTemplate'e yapılan her çağrının mümkünse bir istek yerel işlemi kullanmasını gerektiriyor. Yine de iyi çalışmalı. – ColinD

0

Spring, AOP sınıfları hakkında endişelenmenize gerek kalmadan, bildirimleri sizin için deklaratif olarak ele alır. JDK 5 veya daha yüksek ve Spring 2.5 kullanıyorsanız, annotations ile daha da iyi hale getirebilirsiniz.

Sunucu başına işlemlere katılmıyorum. Uygulama birimleri hakkında bilgi sahibi olan bir hizmet kademesine sahip olmalısınız. Denetleyiciler, işlemleri gerçekleştiren hizmetlere çağrı yapar.

+0

Sorunun, uygulamanın şu anda Spring kabında bulunmadığını ve kolayca taşınamadığını söyledim. Yapabilirsem bildirme işlemlerini kullanmayı çok isterim. – ColinD

İlgili konular