Son zamanlarda belki de en çok duyduğunuz framework'lardan biri olan Spring'e giriş niteliğinde, onu tanıma adına bir yazı olacak. Spring ile kurumsal projeleri rahatlıkla yapabileceğimiz bir framework'tur. Peki nedir diye frameworklardan farkı ki bu kadar ön plana çıktı.
-Kendini ispatlamış; dünya çapında milyonlarca kullanıcısı var bu nedenle de rahatlıkla istediğiniz şeyi bulabilirsiniz.
-IoC prensibini kullanıyor ve bu sayede çok güçlü bir container haline geldi. Açıklayacağız
-Kolay test edilebilir.
-Diğer API ve frameworkler ile kolaylıkla entegre edilebilir.
-En önemli sebep AOP entegrasyonu desteklemesidir.Açıklayacağız
-Uygulama sunuculardan bağımsız olması (Jboss, GlassFish). Bu nedenle hızlı çalışır, az yer kaplar. Sistem gereksinimlerimizi minimum'a çeker ve böylece daha verimli çalışabiliriz.
-Açık kaynkalı bir framework'tur.
Şekil-1 Spring Framework Temel Yapısı
Şimdi burada bulunan yapıları tek tek açıklayalım.
Spring Core: Spring core paketi, Spring’in temelini olusturur.
Spring AOP: Transaksiyon ve güvenlik uygulamalarında kullanılır
Spring MVC: Spring MVC (Model-View-Controller) Spring baz alınarak web tabanlı programlar oluşturulabilir. Spring MVC bir web frameworküdür. Ön yüzlerinizi burada geliştirebilirsiniz.
Spring Context: ApplicationContext ve WebApplicationContext gibi sınıflar bu modülde yer alır. .xml dosyalarında yer alan configurasyon ve bean tanımlamaları burada yapılır.
Spring DAO (Database Access Object): Veritabanı ile ilgili işlemler burada yapılır.
Spring ORM (Object Relational Mapping): Bu modül Hibernate, TopLink gibi ORM frameworkler ile entegrasyonu sağlamaktır.
Şimdi de Spring Framework'u bu kadar öne çıkaran etmenlere göz atalım.
IoC: Java'da tüm yaşam sürecini programcı yönetir, nesneler arası ilişkiyi kurar. Bu ilişkileri silmek işi ise GB işidir, fakat Spring'te bu görev kendisine aittir. Bu da kullanıcıyı büyük bir yükten kurtarır.
Coupling-DeCoupling: Java'da nesneler birbirine bağlanırken kalıtım veya kompozisyon kullanılır. Bu oluşturulan bağlantı ise birbirine sıkı bağlıdır(tightly coupled) ve bu projenin gelişmine sekte vurmaktadır, bu nedenle büyüyen projeler bu ilişkilerin minimum şekilde olması gerekmektedir(De Coupling)
Depency Injection: Yazılımcının ihtiyaç duyduğu beans'leri diğer beanslerle ilişki kurmasını sağlayan yapıdır. Java'da yine yazılımcının kendisi yapması gerekirdi,fakat Spring bunu da kendisi yapıyor ve bunu belirli bir düzen içinde yapmaktadır.
AOP: Uygulamalara modülerlik kazandırmaktadır.Program çerçevesinde yer almak zorunda olmayan bazı metot ve modülleri bir yerde toplayarak programdan bağımsız bir yerde entegre sağlar.
Şimdi de bazı anatasyonları açıklayarak yazımıza son verelim.
@Configuration :Spring, sınıf ve içindeki tüm metotları görülmesini sağlar
@Bean : Her bir metodun bean olarak gözükmesini sağlar.
@Autowired : Gerekli olan bean i otomatik olarak bulunmasını sağlar. Bu veri ile veritabanı işlemleri gerçekleştirilmektedir.
@ImportResource : Xml dosyası ile configuration dosyasını birleştirir.
@Value : Properties dosyası içerisindeki verileri otomatik olarak almamızı sağlar.
@Component:Java sınıfından, Spring konteyner servisleri tarafından
yönetilebilir bir nesne oluşturabilmek için kullanılmaktadır.(Jsf=@ManagedBean)
@Scope: Nesnenin yaşam süresini belirler.(Jsf=@RequestScoped)
Yararlanılan Linkler
Apprentice of Knowledge
Hiç yorum yok:
Yorum Gönder