Herkesin Bilmesi Gereken Spring Boot Temel Açıklamaları
Yayınlanan: 2021-12-13Java Spring Framework, Java Sanal Makinesi (JVM) üzerinde çalışan üretim düzeyinde, bağımsız uygulamalar oluşturmak için kullanılan açık kaynaklı ve kurumsal düzeyde bir çerçevedir. Bu amaçla Java Spring Boot, Spring Framework ile web uygulamalarının ve mikro hizmetlerin geliştirilmesini basitleştiren ve hızlandıran bir araçtır. Bunun için Java Spring Boot, üç temel yetenekten yararlanır: otomatik yapılandırma, yapılandırmaya yönelik görüşlü bir yaklaşım ve bağımsız uygulamalar oluşturma potansiyeli. Bu temel özelliklerin birleşimi, geliştiricilerin Spring tabanlı uygulamaları minimum konfigürasyonlarla kurmasına olanak tanıyan bir araç sağlar.
Açıklamalardan önce, Spring Framework davranışı çoğunlukla XML yapılandırma kontrollüydü. Ancak, Spring Boot ek açıklamaları, Spring Framework'ün davranışlarını nasıl yapılandırabileceğinizi önemli ölçüde değiştirdi.
Bu makalede, Spring Framework'teki bazı temel açıklamaların üzerinden geçeceğiz.
İçindekiler
Spring Boot Açıklamaları Nelerdir?
Spring Boot ek açıklamaları bir meta veri biçimidir. Kendi başına geliştirilmekte olan uygulamanın bir parçası değildirler, ancak bir program hakkında ek veriler sağlarlar. Açıklamaların, açıkladıkları kodun çalışması üzerinde doğrudan bir etkisi yoktur ve derlenen programın eylemini değiştirmezler.
Yay uygulamaları önemli derecede konfigürasyon gerektirir. Spring Boot, Spring Framework'ü oluşturan, üzerinde düşünülmüş bir çerçevedir. Başlamak için ihtiyaç duyulan yapılandırma çabalarını ve ortak özellikleri en aza indirir. Spring Boot ek açıklamaları, Spring Framework üzerinde kontrol kazanmanın, çerçeveyi yönlendirmenin ve gerektiğinde varsayılanlarını geçersiz kılmanın anahtarıdır. Bu ek açıklamaların kullanımı kolaydır ve eşdeğer işlevleri sıfırdan oluşturmaktan daha hızlıdır.
Herkesin Bilmesi Gereken Spring Boot Açıklamaları
Spring Boot, Java, Groovy ve Kotlin ile çalışsa da, önemli Spring Boot ek açıklamalarını tartışırken Java'ya odaklanacağız.
1. @Yapılandırma
@Configuration, fasulyeleri tanımlayan sınıflarda kullanılır. XML yapılandırma dosyasının bir analoğu, fasulye tanımları kaynağı olarak kullanılan sınıf düzeyinde bir açıklamadır. @Configuration açıklamalı Java sınıfı, kendi içinde bir yapılandırmadır ve bağımlılıkları yapılandırma ve başlatma yöntemlerine sahiptir.
Örnek vermek:
@Yapılandırma
kamu sınıfı Otobüs
{
@BeanBus motoru()
{
yeni Bus();
}
}
2. @Fasulye
XML <bean> etiketine bir alternatif olan @Bean ek açıklaması, bir yöntemin Spring konteyneri tarafından yönetilecek bir fasulye ürettiğini belirtmek için yöntem düzeyinde kullanılır. Bu açıklama, Spring bean oluşturmak için @Configuration ile birlikte çalışır. @Configuration, bağımlılıkları yapılandırmak ve başlatmak için yöntemlere sahiptir ve bu tür yöntemler @Bean tarafından açıklanmıştır.
Örnek vermek:
@Fasulye
Public BeanÖrnek fasulyeÖrnek ()
{
yeni BeanExample () döndür,
}
3. @ComponentScan
@ComponentScan ek açıklaması, bir fasulye paketini taramak için kullanılır. Spring'in açıklamalı bileşenler için taranması gereken paketleri bilmesini sağlamak için @Configuration ek açıklamasıyla birlikte kullanılır.
Örnek vermek:
@ComponentScan(basePackages = “com.xyz”)
@Yapılandırma
Genel sınıf ScanComponent
{
//…
}
4. @Bileşen
@Component ek açıklaması, bir Spring bileşenini belirtmek için sınıflarda kullanılır. Otomatik tarama sırasında sınıfı Spring bean'e dönüştüren sınıf düzeyinde bir açıklamadır.
Örnek vermek:
@Bileşen
Kamu sınıfı öğretmenleri
{
……
}
5. @EnableAutoConfiguration
@EnableAutoConfiguration ek açıklaması genellikle ana uygulama sınıfına yerleştirilir ve dolaylı olarak bir temel arama paketini tanımlar. Sınıf yolu ayarlarına, çeşitli özellik ayarlarına ve diğer çekirdeklere bağlı olarak @EnableAutoConfiguration, Spring Boot'u fasulye eklemeye yönlendirir.
6. @SpringBootUygulaması
@SpringBootApplication ek açıklaması, @Configuration, @EnableAutoConfiguration ve @ComponentScan olmak üzere üç ek açıklama ekler. Spring Boot projesi kurulurken uygulama sınıfında kullanılır ve @SpringBootApplication ile açıklamalı sınıf temel pakete yerleştirilir. @SpringBootApplication, bileşen taraması yapar, ancak yalnızca alt paketler için.
7. @Depo
@Repository ek açıklaması, veritabanına doğrudan erişen Java sınıflarında kullanılır. Veri Erişim Nesnesi veya deposunun rolünü yerine getiren sınıflar için bir işaretçi olarak çalışır.
Örnek vermek:
@Depo
genel sınıf TestRepository
{
genel geçersiz silme()
{
// kalıcılık kodu
}
}
8. @Hizmet
İş mantığını yürütme, hesaplamalar gerçekleştirme veya harici API'leri çağırma gibi bir hizmeti gerçekleştiren bir Java sınıfını işaretleyen sınıf düzeyinde bir açıklamadır. @Service ek açıklaması, hizmet katmanında kullanım için @Component ek açıklamasının özel bir biçimidir.
Örnek vermek:
@Hizmet
genel sınıf TestService
{
genel geçersiz hizmet1()
{
// iş kodu
}
}
9. @Otomatik kablolu
Bu açıklama dolaylı olarak nesne bağımlılığını enjekte eder ve alanlara, oluşturuculara ve ayarlayıcı yöntemlerine uygulanır. Alanlarda @Autowired kullanıldığında ve alanların değerleri özellik adı kullanılarak iletildiğinde, Spring, geçilen değerlere sahip alanları otomatik olarak atar.
10. @Kontrolör
@Controller ek açıklaması, bir uygulamada denetleyici görevi gören Java sınıflarında kullanılır. Sınıf yolundaki bileşen sınıflarının otomatik olarak algılanmasına ve ayrıca bunlar için fasulye tanımlarının otomatik olarak kaydedilmesine izin verir. @Controller ek açıklaması tipik olarak @RequestMapping ile kullanılır ve @Controller ile açıklamalı Java sınıfları birden çok istek eşlemesini işleyebilir.
Örnek vermek:
@Kontrolör
@RequestMapping(“arabalar”)
public class CarsController
{
@RequestMapping(değer= “/{ad}”, yöntem= RequestMethod.GET)
kamu Çalışanı getCarsByName()
{
Dönüş arabalarıŞablon;
}
}
11. @RequestMapping
@RequestMapping ek açıklaması hem yöntem hem de sınıf düzeyinde kullanılır. Web isteklerini belirtilen işleyici yöntemleri ve işleyici sınıflarıyla eşleştirmeye yarar. Yöntemlerde @RequestMapping kullanıldığında, işleyici yöntemlerinin yürütüleceği URL'yi verir. Aksine, açıklama sınıflar düzeyinde kullanıldığında, denetleyicinin kullanılacağı temel bir URL oluşturur. Bu nedenle, her işleyici yönteminin ilgili istek eşlemesi olacaktır, oysa sınıf düzeyinde istek eşlemesi aynı kalır.
Örnek vermek:
@Kontrolör
public class FlowersController
{
@RequestMapping (“/kırmızı-renk/çiçekler”)
public String getAllFlowers(Model model)
{
//uygulama kodu
"çiçek listesi" döndür;
}
12. @Qualifier
Bağımlılık ekleme işlemi üzerinde daha fazla kontrol gerektiğinde @Qualifier, @Autowired ile birlikte kullanılır. @Qualifier ek açıklaması, yöntem parametrelerinde veya bireysel kurucu argümanlarında belirtilebilir. Karışıklıklar genellikle geliştirici aynı türden birden fazla fasulye oluşturduğunda ortaya çıkar, ancak bunlardan yalnızca birinin bir özelliğe bağlanması gerekir. @Qualifier ek açıklaması, bu karışıklıkları ortadan kaldırmak için kullanışlıdır.
Örnek vermek:
@Bileşen
public class BeanB1, BeanInterface'i uygular {
//
}
@Bileşen
public class BeanB2, BeanInterface'i uygular {
//
}
Yukarıdaki örnekte, BeanInterface, iki fasulye BeanB1 ve BeanB2 tarafından uygulanmaktadır. Şimdi, BeanA bu arabirimi otomatik olarak bağlarsa, Spring iki uygulamadan hangisini enjekte etmesi gerektiğini bilemez. @Qualifier notunu kullanarak bu sorunu çözebilirsiniz. Bu ek açıklama yerinde olduğunda, Spring, çekirdeklerden hangisinin otomatik olarak bağlanacağını bilecektir.
@Bileşen
genel sınıf BeanA {
@otomatik kablolu
@Qualifier(“beanB2”)
özel BeanInterface bağımlılığı;
…
}
13. @Değer
@Value ek açıklaması alan, yöntem parametresi ve yapıcı parametresi düzeylerinde kullanılır. Özelliği başlatmak için parametre veya alan için varsayılan bir değer ifadesini belirtir.
14. @Tembel
@Lazy notu, bileşen sınıflarına uygulanır. Başlangıçta, tüm otomatik kablolu bağımlılıklar varsayılan olarak oluşturulur ve yapılandırılır. Ancak, geliştirici bir fasulyeyi tembel bir şekilde başlatmak isterse, @Lazy notu kullanılabilir. Böylece, fasulye yalnızca istek üzerine oluşturulur ve başlatılır. @Lazy ek açıklaması @Configuration sınıflarında da kullanılabilir; bu, bu @Configuration içindeki tüm @Bean yöntemlerinin tembelce başlatılacağı anlamına gelir.
Bu Java Spring Boot ek açıklamaları listesi ayrıntılı olmasa da, aşağı yukarı her geliştiricinin veya Java meraklısının bilmesi gereken en temel olanları kapsar. Sonuçta Spring Boot, Spring tabanlı uygulamaların geliştirilmesini basitleştirdi ve bilinmeye değer.
Liverpool John Moores Üniversitesi'nden Veri Biliminde Bilim Ustası
Kalkınan bir veri bilimcisiyseniz, işte en iyilerden öğrenmek için bir fırsat. upGrad, veri bilimi becerilerini ve bilgilerini geliştirmek isteyen çalışan profesyoneller için özel olarak tasarlanmış Liverpool John Moores Üniversitesi ile ortaklaşa Veri Biliminde çevrimiçi bir Bilim Yüksek Lisansı sunar.
İşte bir bakışta bazı program öne çıkanları:
- LJMU'dan Master Derecesi ve IIT Bangalore'dan Executive PGP
- Canlı oturumlar, vaka çalışmaları ve projelerle dolu 500 saatten fazla öğrenim
- 14+ araç ve yazılımın kapsamlı kapsamı
- Üç benzersiz uzmanlık
- 360 derece özel kariyer yardımı
- Akran öğrenimi ve endüstri ağı
upGrad'ın kapsamlı ve sektörle ilgili öğrenme programları, dünya çapında 500.000'den fazla çalışan profesyoneli etkiledi ve daha yüksek EdTech endüstrisinde yüksek standartlar belirlemeye devam ediyor. Öyleyse bugün başvurun ve 85 ülkeye yayılmış 40.000'den fazla küresel öğrenci tabanına katılın!
Dünyanın en iyi Üniversitelerinden çevrimiçi veri bilimi kurslarını öğrenin . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.
Spring Boot starter'ın amacı nedir?
Spring Boot başlatıcıları, sınıf yoluna kavanoz eklemeye izin veren bağımlılık tanımlayıcılarıdır. Her başlatıcı, Spring Boot çerçevesinde aşağıdaki adlandırma modeline sahiptir: spring-boot-starter-*, burada *, belirli bir uygulama türünü temsil eder.
@SpringBootApplication ve @EnableAutoConfiguration arasındaki fark nedir?
@EnableAutoConfiguration'ın birincil görevi, Spring Boot uygulamasının otomatik yapılandırma özelliklerini etkinleştirmektir. Aksine, @SpringBootApplication üç ek açıklamayı birleştirir - bileşen taraması için @ComponentScan, Spring çerçevesinde Java tabanlı yapılandırma için @Configuration ve Spring Boot uygulamalarında otomatik yapılandırmaya izin vermek için @EnableAutoConfiguration.
Spring boot, SpringBootApplication olmadan çalışabilir mi?
Spring Boot uygulaması oluşturmak için @SpringBootApplication kullanmak zorunlu değildir. @EnableAutoConfiguration ve @Configuration'ı ayrı ayrı kullanmaya devam edebilirsiniz.