Bahar Çerçevesi - Genel Bakış
Spring, kurumsal Java için en popüler uygulama geliştirme çerçevesidir. Dünyanın dört bir yanındaki milyonlarca geliştirici, yüksek performanslı, kolayca test edilebilir ve yeniden kullanılabilir kod oluşturmak için Spring Framework'ü kullanıyor.
Spring framework, açık kaynaklı bir Java platformudur. Başlangıçta Rod Johnson tarafından yazılmış ve ilk olarak Haziran 2003'te Apache 2.0 lisansı altında piyasaya sürülmüştür.
Konu boyut ve şeffaflık olduğunda yay hafiftir. Spring çerçevesinin temel sürümü 2MB civarındadır.
Spring Framework'ün temel özellikleri herhangi bir Java uygulamasının geliştirilmesinde kullanılabilir, ancak Java EE platformunun üzerinde web uygulamaları oluşturmak için uzantılar vardır. Spring çerçevesi, J2EE geliştirmenin kullanımını kolaylaştırmayı hedefler ve POJO tabanlı bir programlama modelini etkinleştirerek iyi programlama uygulamalarını destekler.
Bahar Çerçevesini Kullanmanın Yararları
Spring Framework kullanmanın büyük faydalarından birkaçının listesi aşağıdadır -
Spring, geliştiricilerin POJO'ları kullanarak kurumsal sınıf uygulamalar geliştirmesine olanak tanır. Yalnızca POJO'ları kullanmanın yararı, uygulama sunucusu gibi bir EJB konteyner ürününe ihtiyacınız olmaması, ancak Tomcat gibi yalnızca sağlam bir servlet konteyneri veya bazı ticari ürünler kullanma seçeneğinizin olmasıdır.
Bahar modüler bir şekilde düzenlenmiştir. Paketlerin ve sınıfların sayısı önemli olsa da, yalnızca ihtiyacınız olanlar için endişelenmeli ve gerisini görmezden gelmelisiniz.
Bahar tekerleği yeniden icat etmez, bunun yerine birkaç ORM çerçevesi, günlükleme çerçevesi, JEE, Quartz ve JDK zamanlayıcıları ve diğer görünüm teknolojileri gibi mevcut teknolojilerin bazılarını gerçekten kullanır.
Spring ile yazılmış bir uygulamayı test etmek basittir çünkü ortama bağlı kod bu çerçeveye taşınır. Ayrıca, JavaBeanstyle POJO'larını kullanarak, test verilerini enjekte etmek için bağımlılık enjeksiyonu kullanmak daha kolay hale gelir.
Spring'in web çerçevesi, Struts veya diğer fazla tasarlanmış veya daha az popüler web çerçeveleri gibi web çerçevelerine harika bir alternatif sağlayan, iyi tasarlanmış bir web MVC çerçevesidir.
Spring, teknolojiye özgü istisnaları (örneğin, JDBC, Hibernate veya JDO tarafından atılan) tutarlı, kontrol edilmemiş istisnalara çevirmek için uygun bir API sağlar.
Hafif IoC konteynerler, özellikle örneğin EJB konteynerlerle karşılaştırıldığında hafif olma eğilimindedir. Bu, sınırlı belleğe ve CPU kaynaklarına sahip bilgisayarlarda uygulama geliştirmek ve dağıtmak için faydalıdır.
Spring, yerel bir işleme ölçeklenebilen (örneğin tek bir veritabanı kullanarak) ve küresel işlemlere kadar ölçeklenebilen (örneğin JTA kullanarak) tutarlı bir işlem yönetimi arayüzü sağlar.
Bağımlılık Enjeksiyonu (DI)
Spring'in en çok özdeşleştiği teknoloji, Dependency Injection (DI)Ters Kontrolün lezzeti. Inversion of Control (IoC)genel bir kavramdır ve birçok farklı şekilde ifade edilebilir. Bağımlılık Enjeksiyonu, Kontrolün Tersine Çevrilmesi'nin yalnızca somut bir örneğidir.
Karmaşık bir Java uygulaması yazarken, uygulama sınıfları, bu sınıfları yeniden kullanma ve birim testi sırasında diğer sınıflardan bağımsız olarak test etme olasılığını artırmak için diğer Java sınıflarından olabildiğince bağımsız olmalıdır. Bağımlılık Enjeksiyonu, bu sınıfları birbirine yapıştırmaya ve aynı zamanda onları bağımsız tutmaya yardımcı olur.
Bağımlılık enjeksiyonu tam olarak nedir? Bu iki kelimeye ayrı ayrı bakalım. Burada bağımlılık kısmı, iki sınıf arasındaki bir ilişkiye dönüşür. Örneğin, A sınıfı, B sınıfına bağımlıdır. Şimdi ikinci bölüm olan enjeksiyona bakalım. Tüm bu, B sınıfının IoC tarafından A sınıfına enjekte edileceği anlamına gelir.
Bağımlılık enjeksiyonu, parametrelerin kurucuya iletilmesi şeklinde veya ayarlayıcı yöntemleri kullanılarak inşa sonrası gerçekleşebilir. Bağımlılık Enjeksiyonu Bahar Çerçevesinin kalbi olduğundan, bu kavramı ayrı bir bölümde ilgili örnekle açıklayacağız.
Görünüşe Yönelik Programlama (AOP)
Baharın temel bileşenlerinden biri, Aspect Oriented Programming (AOP)çerçeve. Bir uygulamanın birden çok noktasını kapsayan işlevlerecross-cutting concernsve bu kesişen endişeler kavramsal olarak uygulamanın iş mantığından ayrıdır. Günlüğe kaydetme, bildirimsel işlemler, güvenlik, önbelleğe alma vb.
OOP'de modülerliğin ana birimi sınıftır, oysa AOP'de modülerlik birimi görünümdür. DI, uygulama nesnelerinizi birbirinden ayırmanıza yardımcı olurken, AOP kesişen endişeleri etkiledikleri nesnelerden ayırmanıza yardımcı olur.
Spring Framework'ün AOP modülü, ayrılması gereken işlevselliği uygulayan kodu temiz bir şekilde ayırmak için yöntem durdurucuları ve nokta kesimlerini tanımlamanıza olanak tanıyan, yön odaklı bir programlama uygulaması sağlar. Bahar AOP kavramları hakkında ayrı bir bölümde daha fazla tartışacağız.