29 Ocak 2013 Salı

Spring ve DAO

Spring ve DAO

Spring ile Hibernate veya JDBC kullanan DAO sınıfları yazmak mümkün.Aşağıdaki şekilde kırmızı çerçeve içinde DAOSupport sınıfından türeyen HibernateDaoSupport ve JdbcDaoSupport sınıfları görülebilir.


DAO ve Repository Arasındaki Fark Nedir
Yukarıdaki sınıf hiyerarşisinde de görüldüğü gibi sınıflarımız xxxDaoSupport kelimesi ile biten sınıflardan türemesine rağmen,  @Repository anotasonu ile işaretleniyorlar. Repository ile DAO arasındaki fark nedir ?
DAO aynı zamanda Table Data Gateway olarak ta adlandırılıyor. Repository, Domain Modelini dönen nesne. Çoğunlukla DAO ile Repository aynı şeyler. Farklı oldukları durumu açıklayan bir yazı burada.

JDBCDaoSupport

JdbcDaoSupport sınıfı da kendi içinde bir hiyerarşiye sahip. Aşağıdaki şekilde bunun bir örneğini görmek mümkün. Örneğin NamedParameterJdbcDaoSupport sıfını buna bir örnek olarak verilebilir.


Aşağıda NamedParameterJdbcDaoSupport sınıfını biraz daha detaylı gösteren bir şekil var.


DAO ve Template Kullanımı

Spring ile gelen tüm sınıflarda template tasarım örüntüsü kullanılıyor. Veritabanına erişim için kullanılan kodlar bir template içinde gizli. Aşağıdaki şekil bunu gösteriyor.


DAO ve Exception
 
DAO sınıflarını @Repository anotasonu ile kullanırsak alt tarafta kullanılan veritabanı erişimi kütüphanelerinden atılabilecek exceptionlar Spring tarafından belli bir hiyerarşi altında gruplanırlar. Böylece veritabanı kütüphanesinden daha bağımsız kod geliştirmek mümkün olur. Aşağıda Spring tarafından kullanılan exception hiyerarşisini gösteren bir şekil bulabilirsiniz.


Hiç yorum yok:

Yorum Gönder