Spring, bir uygulamanın farklı bileşenlerini oluşturmak ve yönetmek için bir kapsayıcı kullanan bir Java çerçevesidir. Konteyner (genellikle Spring uygulama bağlamı olarak adlandırılır), bağımlılık enjeksiyonu (DI) tasarım modelini kullanarak bir uygulamadaki farklı bileşenleri birbirine bağlar. DI, bir nesneyi bağımlı sınıf içinde yeni bir örneğini oluşturmadan kullanmanıza izin verir.
Bu nedenle, Spring'in kapsayıcısı, her bileşenin dayandıkları bileşenlerin yeni örneklerini oluşturmasına izin vermek yerine, barındırdığı bileşenlerin her birinin bir örneğini oluşturur ve sürdürür. Bu kap daha sonra, ona ihtiyaç duyan diğer tüm bileşenlere bir bileşenin bir örneğini enjekte eder.
Spring'in Temel Özelliklerini Keşfetmek
Spring çerçevesi, uygulamaları oluşturma ve yönetme becerisinde bütünleyici bir rol oynayan yaklaşık 20 iyi organize edilmiş modüle sahiptir. Bu modüllerin birincil özelliklerine bağlı olarak, bunları beş kategoride gruplandırabilirsiniz:
- Çekirdek Konteyner
- Veri Erişimi/Entegrasyonu
- ağ
- Görünüş Odaklı Programlama ve Enstrümantasyon
- Ölçek
Bahar Kabı
Spring, bir uygulamanın farklı bileşenlerini (fasulye olarak adlandırdığı) oluşturmak ve yönetmek için bir kap kullanır. Konteynere, Spring'in nesneleri (veya bean'leri) somutlaştırmanıza, yapılandırmanıza ve birleştirmenize izin veren ApplicationContext arabirimi aracılığıyla erişilebilir. Spring'in kabı, yapılandırma meta verilerinin yardımıyla işlevini yerine getirebilir.
Bu yapılandırma meta verilerinin birkaç farklı biçimi olabilir, ancak tipik biçimi XML'dir. Çekirdeklere ek olarak, Spring'in kabı ayrıca bir çekirdek, bağlam ve bir ifade modülünden oluşur.
Bahar Veri Erişimi/Entegrasyonu
Yay çerçevesinin veri erişimi/entegrasyon yönü birkaç alt modülden oluşur: JDBC, ORM, OXM, JMS ve işlem. Bu modüller, uygulamanızın kullandığı tüm verileri yönetmek için birlikte çalışır.
Bahar Ağı
Spring uygulamasının web özelliği, uygulamanız için web odaklı entegrasyon sağlar. Web odaklı entegrasyona ek olarak, Spring bir web servlet modülü sağlar. Web sunucu uygulaması modülü, Spring'in model görünümü denetleyicisi (MVC) uygulaması.
Bahar En-Boyut Odaklı Programlama (AOP)
Spring'in AOP çerçevesi, temel bileşenlerinden bir diğeridir. AOP çerçevesi, Spring'in konteyner işlevi için çok önemli olmasa da, yetenekli bir ara yazılım çözümü olarak konteyneri tamamlar. AOP çerçevesinin temel özelliklerinden biri, uygulamanız için bildirime dayalı kurumsal hizmetler, yani bildirim işlem yönetimi sağlamasıdır.
Bildirime dayalı işlem yönetimi, uygulama kodu üzerinde minimum etkiye sahip olduğu için yazılım geliştirmeye arzu edilen bir yaklaşımdır.
Bahar Testi
Spring, uygulama testine büyük önem verir. Test modülü, JUnit veya TestNG kullanarak entegrasyon testini ve birim testini destekler.
Yay Uygulaması Oluşturma
Yeni bir Spring uygulaması için şablon oluşturmanın birkaç yolu vardır. Çeşitli yaklaşımlar şunları içerir:
- Spring'in resmi web sitesindeki web uygulamasından (veya Spring Initializr'dan).
- El ile bir proje dizin yapısı oluşturma ve belirtimler oluşturma.
- Spring Tool Suite ile.
- Spring Boot komut satırı arayüzü ile komut satırından.
- Eclipse IDE'si ile.
- IntelliJ IDEA IDE ile.
En popüler yaklaşım Spring Initializr'dir:
Yukarıdaki resimde de görebileceğiniz gibi, vermeniz gereken birkaç kararınız olacak. İlki, başlatmak istediğiniz proje türüdür. Spring üç seçenek sunar: Gradle for Groovy, Gradle for Kotlin veya Maven. Bu örnek uygulama bir Maven projesi kullanacaktır.
Seçmeniz gereken diğer seçenekler dil (Java), kullanmak istediğiniz Spring Boot sürümü ve proje meta verileridir. Spring, beş alanında, örnek bir uygulama oluşturmanıza yardımcı olacak bazı sahte verilere zaten sahiptir. Ancak, bu meta veriler, Spring bean'leri ve yöntemleri de dahil olmak üzere Spring uygulamanızı tanımlayacağından, bu alanları projeye özgü verilerle güncellemeniz gerekecektir.
Ardından, dosyalarınızın içinde olmasını istediğiniz paketi (jar veya war) seçmeniz gerekir. Ardından, cihazınızda bulunan Java sürümünü seçebilirsiniz. Vermeniz gereken son karar, uygulamanız için istediğiniz bağımlılık türüdür.
Spring, uygulamanıza özellikler eklemek için kullanabileceğiniz çeşitli bağımlılıklar sağlar. Uygulamanıza yeni bir bağımlılık eklemek için, Spring Initializr'ın sağındaki bağımlılık ekle düğmesini tıklamanız yeterlidir. Bu eylem, ekranınızda aşağıdaki kaplamayı oluşturacaktır:
Bu örnek uygulama için ihtiyacınız olacak tek bağımlılık Spring Web'dir. Bu bağımlılık, MVC mimarisini kullanarak web uygulamaları oluşturmanıza olanak tanır. Uygulamanızda kullanmak istediğiniz tüm bağımlılıkları seçtikten sonra, bir tıklama oluşturmaya devam edin. Bu, proje standartlarını sizin için indirecektir.
Artık bir Spring Boot (Spring'in kütüphanelerinden biri olan) projeniz var. Son adım, projeyi tercih ettiğiniz IDE'ye aktarmaktır. Spring projeniz aşağıdaki proje yapısına sahip olacaktır:
Bu normal bir Maven proje yapısıdır ve aşina olmanız gereken birkaç önemli dosya vardır.
- Pom.xml: Bu, Spring uygulama yapılandırma verilerini içerir.
- OnlineShopaholicsApplication.java: Bu, uygulamayı yürüten Spring Boot ana sınıfıdır.
- OnlineShopaholicsApplicationTest.java: Bu bir JUnit testi Spring uygulama bağlamının (veya kabının) doğru şekilde yüklenmesini sağlayan sınıf.
Bir Yay Uygulamasını Çalıştırma
Bu durumda OnlineShopaholicsApplication sınıfı olan Spring'in önyükleme sınıfı aşağıdaki başlangıç koduna sahiptir:
paket com.onlineshopaholics;
içe aktarmakorg.springframework.bot.Bahar Uygulaması;
içe aktarmakorg.springframework.bot.otomatik yapılandırma.SpringBootUygulaması;
@SpringBootUygulaması
halksınıfÇevrimiçi Alışverişkoliğin Başvurusu{
halkstatikgeçersizana(Dize[] bağımsız değişkenler){
SpringApplication.run (OnlineShopaholicsApplication.sınıf, argümanlar);
}
}
Yukarıdaki kodun en önemli yönlerinden biri, @SpringBootUygulaması ek açıklama, uygulamanızın diğer üç ek açıklamanın özelliklerine erişmesine izin veren bileşik bir açıklamadır:
- @EnableAutoconfiguration: Bu ek açıklama, Spring Boot otomatik yapılandırmasını etkinleştirir. Bu, Spring boot'a uygulamanızın çalışması gerektiğini düşündüğü herhangi bir bileşeni yapılandırmasını söylediği anlamına gelir.
- @ComponentScan: Bu not, bileşen taramayı etkinleştirmenizi sağlar. Bu özellik önemlidir, Spring'in diğer açıklamalı bileşenleri Spring uygulama bağlamı (veya kabı) tarafından kullanılmak üzere otomatik olarak keşfetmesine ve kaydetmesine olanak tanır.
- @SpringBootConfiguration: Bu, @Configureation ek açıklamasının özel bir biçimidir ve bahar uygulama bağlamında çekirdekleri (veya nesneleri) kaydetmenize olanak tanır.
Yukarıdaki kodun diğer önemli yönü, ana() yöntem, uygulamanızı yürütür. Uygulama şimdi yürütüldüğünde, yalnızca sunucuyu başlatır. Bu nedenle, uygulamaya daha fazla işlevsellik eklemek istiyorsanız kodu güncellemeniz gerekir:
paket com.onlineshopaholics;
içe aktarmakorg.springframework.bot.Bahar Uygulaması;
içe aktarmakorg.springframework.bot.otomatik yapılandırma.SpringBootUygulaması;
içe aktarmakorg.springframework.ağ.bağlama.dipnot.GetMapping;
içe aktarmakorg.springframework.ağ.bağlama.dipnot.RequestParam;
içe aktarmakorg.springframework.ağ.bağlama.dipnot.RestController;@SpringBootUygulaması
@RestController
halksınıfÇevrimiçi Alışverişkoliğin Başvurusu{
halkstatikgeçersizana(Dize[] bağımsız değişkenler){
SpringApplication.run (OnlineShopaholicsApplication.sınıf, argümanlar);
}
@GetMapping("/müşteri")
halk Sicim Hoş Geldiniz(@RequestParam (değer = "isim", varsayılanDeğer = "Müşteri") Sicim isim) {
geri dönmekSicim.biçim("Hoş geldiniz %s!", isim);
}
}
Spring Boot uygulamasının artık üç yeni notu var:
- @RestController: Bu ek açıklama, sınıfı bir denetleyici olarak işaretler, bu nedenle yukarıdaki sınıftaki her yöntem (main() dışında), görünüm yerine bir etki alanı nesnesi döndürür.
- @GetMapping: Bu ek açıklama, HTTP GET isteklerini belirli başlık yöntemleriyle eşler. Bu nedenle, tarayıcıda "/ müşteri" için bir istek oluşturduğunuzda, Welcome() yöntemi bir dize değeri döndürerek isteği işleyecektir.
- @RequestParam: Bu ek açıklama, bir yöntem parametresinin bir web isteği parametresine bağlanması gerektiğini belirtir.
Güncellenen kod ile Baharınız Çevrimiçi Alışverişkoliğin Başvurusu artık tarayıcınızda görüntüleyebileceğiniz bir müşteri sayfası var. Uygulamanın çalıştırılması sunucuyu başlatacak ve konsolda çıktı üretecektir.
Çıktıda birçok önemli bilgi var. Sunucunun çalıştığını, başlatma işleminin ne kadar sürdüğünü ve uygulamanın hangi bağlantı noktasında çalıştığını söyler (varsayılan olarak 8080). Bu nedenle, http://localhost: 8080/müşteri tarayıcınızda aşağıdaki çıktıyı göreceksiniz:
Artık Uygulama Görünümünüzü Tasarlayabilirsiniz
Proje yapısında fark edebileceğiniz bir diğer önemli dosya da şablonlar dosya. İdeal olarak, Çevrimiçi Alışverişkoliğin Başvurusu sınıf, farklı görünümler için istekleri işleyen bir denetleyici görevi görmelidir. Bu nedenle, eksiksiz bir uygulamada, denetleyici sınıfı, isteğinin görünümünde görüntülenecek metni içermemelidir.
Bunun yerine, HTML kullanarak şablon dosyaları oluşturmanız ve bunları Spring uygulamanızın şablonlar klasörüne yerleştirmeniz gerekir.