Spring Boot nedir?
Java Spring Boot, mikro hizmetler ve web uygulamaları oluşturmak için Java tabanlı çerçeveleri kullanmayı kolaylaştıran açık kaynak bir araçtır. Tüm Spring Boot tanımlarında, konuşma uygulama geliştirme için en popüler ve yaygın olarak kullanılan geliştirme dillerinden ve bilgi işlem platformlarından biri olan Java ile başlamalıdır. Dünyanın her yerindeki geliştiriciler kodlama yolculuklarına Java öğrenerek başlamaktadır. Esnek ve kullanıcı dostu Java; sosyal medya, web ve oyun uygulamalarından ağ ve kurumsal uygulamalara kadar birçok farklı uygulama için en çok kullanılan uygulamalardan birisidir.
Java ve Spring çerçevesi
Java’nın kullanımı kolay ve öğrenmesi diğer dillere göre daha kolay olsa da, Java uygulamalarını derlemek, hatalarını ayıklamak ve dağıtmak için karmaşıklık düzeyi giderek artmıştır. Bunun nedeni, modern geliştiricilerin müzik akışı veya mobil nakit ödeme uygulamaları gibi yaygın modern teknolojiler için web uygulamaları veya mobil uygulamalar geliştirirken karşılaştığı üstel değişken sayısıdır. Temel bir iş kolu uygulaması yazan bir geliştiricinin artık birden çok kitaplık, eklenti, hata günlüğü ve işleme kitaplıkları, web hizmetleriyle tümleştirmeler ve C#, Java, HTML gibi birden çok dille ilgilenmesi gerekmektedir. Kolayca anlaşılacağı üzere, Java uygulaması geliştirmeyi kolaylaştıran, geliştiriciler için zaman ve para tasarrufu sağlayan araçlar için çok büyük bir talep vardır.
Geliştiricilerin kullanabileceği ve ihtiyaçları doğrultusunda kendi kodlarında ekleyebilecekleri önceden yazılmış büyük kod gövdeleri olan uygulama çerçevelerini girin. Bu çerçeveler, mobil ve web uygulamaları geliştirirken ya da masaüstleri ve API’lerle çalışırken geliştiricinin yükünü neredeyse her ihtiyaç için basitleştirmektedir. Çerçeveler, bir yazılım geliştirme projesinin farklı öğelerini birbirine bağlamaya yardımcı olmak için yeniden kullanılabilir kod ve araçlar sağlayarak uygulama oluşturmayı daha hızlı, daha kolay ve daha güvenli hale getirir.
Spring burada devreye girer: Spring, Java ile uygulama oluşturmaya yönelik kolaylaştırılmış, modüler bir yaklaşım sağlayan açık kaynaklı bir projedir. Spring proje ailesi ilk kez 2003 yılında erken Java gelişim aşamasındaki karmaşıklıklara bir yanıt olarak ortaya çıkmış olup Java uygulamaları geliştirme konusunda destek sağlamaktadır. Tek başına Spring adı genellikle uygulama çerçevesinin kendisini veya tüm proje grubunu ya da modülleri ifade eder. Java Spring Boot, Spring çerçevesinin uzantısı olarak oluşturulan belirli bir modüldür.
Spring çerçevesi, Spring Boot ve Java’nın birlikte nasıl çalıştıklarına yönelik bu arka planla birlikte, Java çerçevesi olan Spring’de web uygulaması ve mikro hizmet geliştirmeyi kolaylaştıran ve hızlandıran Spring Boot aracının tanımı aşağıda verilmiştir.
Bazen dil ve/veya platform Java olduğu için "Java Spring Boot," "Java Spring çerçevesi," veya "Spring Boot çerçevesi"olarak adlandırılır. Ancak, Java için Play ve Hibernate gibi başka üçüncü taraf çerçeveler olduğundan "Spring" ve "Spring Boot"demek daha doğru olacaktır.
Java temel bilgileri hakkında üst düzey bir tartışma için , Java nedir? başlıklı makaleye göz atın
Spring ile Spring Boot arasındaki fark nedir?
Daha önce de belirtildiği gibi Spring, kendi şemsiyesi altında çok sayıda küçük projeyi kapsayan açık kaynak, Java tabanlı bir uygulama çerçevesidir. Diğer popüler Spring projeleri arasında Spring Data, Spring Cloud ve Spring Security gibi projeler yer alır. Spring ve Spring Boot arasındaki farkı anlamak için temel özelliklerde farklar olsa da bunların tümünün Spring ailesinde olduğunu fark etmek önemlidir.
Spring ile Spring Boot arasındaki farkları tam olarak anlamak için öncelikle birkaç önemli terimi tanımlamanız gerekir.
Mikro hizmetler nedir?
Bağımlılık ekleme nedir?
Bağımlılık ekleme (DI), denetimin tersine çevrilmesi (IoC) için kullanılan bir tasarım tekniğidir. Java gibi nesne odaklı programlamada, diğer nesnelere bağımlı olan nesnelere bağımlılıklar adı verilir. Genellikle, alıcı veya bağımlı nesne bir istemci olarak adlandırılır ve istemcinin bağımlı olduğu nesne de hizmet olarak adlandırılır. Bu bağlamda, bağımlılık ekleme, hizmeti istemciye iletir veya bir enjektör olarak adlandırılan kodu kullanarak bağımlılığı "ekler". DI, istemcinin hangi hizmetin kullanılacağını belirtmesi ihtiyacını ortadan kaldırır; yani enjektör istemci için bu işi gerçekleştirir.
Yapılandırma kuralı nedir?
Bazen kurala göre kodlama olarak adlandırılan yapılandırma kuralı, bir geliştiricinin vermesi gereken karar sayısını azaltmak için uygulama çerçeveleri içinde kullanılan bir kavramdır. Gereksiz kod yazmamak için "kendini tekrarlamama" ilkesine bağlıdır. Kurala göre kodlama, bir geliştiricinin yalnızca kendi oluşturmakta olduğu uygulamanın sıra dışı yönleri için kod yazmasına olanak sağlarken esnekliği sürdürmeyi amaçlar. Uygulamanın istenen davranışı, oluşturulan kurallarla eşleştiğinde, uygulama varsayılan olarak yapılandırma dosyalarını yazmak zorunda kalmadan çalıştırılacaktır. Geliştiricinin yapılandırma dosyalarını yalnızca istenen davranış "kuraldan" uzaksa açıkça yazması gerekir.
Spring çerçevesi ve Spring Boot karşılaştırması
Spring | Spring Boot karşılaştırması | |
---|---|---|
Nedir? | Java’yı temel alan açık kaynaklı bir web uygulaması çerçevesi. | Spring çerçevesi üzerinde oluşturulmuş bir uzantı veya modül. |
Uygulama ne işe yarıyor? | Özelleştirilmiş, gevşek bir şekilde bağlanmış web uygulamaları oluşturmak için önceden oluşturulmuş kod araç ve kitaplıklarını kullanarak esnek, tamamen yapılandırılabilir bir ortam sağlar. | Ek açıklamalara, XML yapılandırmasına veya çok sayıda ek kod yazmaya gerek kalmadan hemen çalıştırılacak tek başına Spring uygulamaları oluşturma olanağı sağlar. |
Hangi durumlarda kullanılmalıdır? | Aşağıdakileri elde etmek için Spring’i kullanın:
| Aşağıdakileri elde etmek için Spring Boot’u kullanın:
|
Temel özelliği nedir? | Bağımlılık ekleme | Otomatik yapılandırma |
Eklenmiş sunucuları var mı? | Hayır. Spring’de sunucuları açıkça ayarlamanız gerekir. | Evet, Spring Boot Tomcat ve Jetty gibi yerleşik HTTP sunucularını kapsar. |
Nasıl yapılandırılır? | Spring çerçevesi esneklik sağlar, ancak yapılandırmasının el ile derlenmesi gerekir. | Spring Boot Spring ve diğer üçüncü taraf çerçeveleri otomatik olarak varsayılan "yapılandırma kuralı" ilkesine göre yapılandırır. |
XML ile nasıl çalışıldığını bilmeme gerek var mı? | Spring’de XML yapılandırması hakkında bilgi sahibi olmanız gerekir. | Spring Boot XML yapılandırmasını gerektirmez. |
Geliştirme ve test uygulamaları için CLI araçları var mıdır? | Spring çerçevesi tek başına uygulama geliştirmek veya test etmek için CLI araçları sağlamaz. | Spring modülü olarak, Spring Boot, Spring tabanlı uygulamalar geliştirmek ve test etmek için bir CLI aracına sahiptir. |
Önyargılı veya önyargısız yaklaşım ile çalışır mı? | Önyargısız* | Önyargılı* |
*Önyargılı ve önyargısız çerçeve yaklaşımının karşılaştırılması
"Önyargılı" kelimesi olumsuz bir anlam taşısa da hem önyargılı hem de önyargısız Spring Boot çerçevesinin kendine has avantajları vardır.
Önyargılı yaklaşım
Önyargılı bir yaklaşım daima diğerlerine kıyasla önemli ölçüde kolay olan bir yolun olduğu düşüncesine dayanır. Tasarım gereği, yazılım tasarımcıları sınırlar ve önerilen şekilde bir çalışmaları için teşvik eder.
Çoğu durumda çoğu kişinin işine yarayacak en iyi yöntemlerden birini sunar. Uygulama, bu en iyi yöntemlere ve yaygın kurallara bağlı kalınarak yazılmıştır. Önyargılı bir yaklaşım, kodlama projesiyle işbirliğini ve yardım almayı çok daha kolay hale getirir. Bu çerçevede deneyime sahip olan diğer geliştiriciler yeni uygulamaya hemen aşina olur ve doğrudan bu çalışmaya başlar.
Önyargısız yaklaşım
Tüm çözümler kabaca aynı miktarda çaba veya karmaşıklık düzeyini gerektirdiğinde, önyargısız bir yaklaşım benimsenmektedir. Bu yöntem de sorunun çözümü için tek bir doğru yol olmadığı anlayışına dayanır. Bunun yerine, sorunu çeşitli şekillerde çözmek için kullanılabilecek esnek araçlar sağlar. Önyargısız çerçeveler, geliştirmede çok fazla esneklik sağlama avantajına sahip olur ve denetimi daha çok geliştiricilerin eline bırakır. Bu kadar fazla esnekliğin getirdiği temel dezavantaj, geliştiricinin alması gereken çok fazla karar olması ve çerçeve açık uçlu ve önyargısız olduğu için çok daha fazla kod yazmak durumunda kalabilmesidir.
Spring Boot özellikleri ve avantajları
Son olarak, işin eğlenceli kısmı Java Spring Boot’un Java çerçevesi ötesinde sağladığı temel özelliklerdir. Spring Boot uygulamaları ayarlamak, yapılandırmak ve çalıştırmak için daha kolay, daha hızlı bir yol sağlar. Çoğu Spring tabanlı uygulamanın ayarlanması için gereken yapılandırmanın yükünün kaldırılmasını sağlar. Geliştiriciler, altyapıdaki Spring çerçevesinin ne olduğunu öğrenmeye gerek kalmadan doğrudan çalışmaya başlayıp Spring Boot’u kullanabilir.
Spring Boot özelliklerinin Java programlama görevlerini nasıl basitleştirdiği burada açıklanmıştır. Spring Boot’un bazı temel özellikleri şunlardır:
-
Tek başına uygulamalar—Spring Boot, belirli bir platforma bağlı olmayan ve İnternet bağlantısı veya diğer yüklü hizmetler olmadan bir cihazda yerel olarak çalışabilen uygulamalar oluşturmanıza olanak tanır.
-
Ekli sunucular—Spring Boot Tomcat, Jetty veya Under tower gibi sunucuları doğrudan eklemenizi sağlar.
-
Önyargılı yaklaşım—Spring Boot, önyargılı başlangıç bağımlılıkları sağlayarak derleme yapılandırmalarını basitleştirir.
-
Otomatik yapılandırma—Spring Boot Spring ve diğer üçüncü taraf kitaplıkları mümkün olduğunda otomatik olarak yapılandırır.
-
Üretime hazır özellikler—Spring Boot ölçümler, sistem durumu denetimleri ve harici yapılandırma gibi üretime hazır özellikler sağlar.
Spring Boot’un avantajları
Spring Boot:
-
Geliştirme süresini azaltarak üretkenliği artırır—Spring Boot Java ile Spring tabanlı uygulamalar geliştirmeyi çok daha kolay hale getirir. Spring çerçevesine yönelik önyargılı yaklaşımı, kararlara ve yinelenen görevlere harcanan zamanı azaltarak uygulamaları oluşturmaya ve teste odaklanmaya zaman tanır.
-
Ortak kod, ek açıklama ve XML yapılandırması yazma ihtiyacını azaltır—Geliştiricilerin kod oluşturması veya XML yapılandırması yapmasına ve hatta istemiyorlarsa Spring çerçevesini öğrenmelerine gerek yoktur.
-
Spring proje ailesindeki uygulamaları tümleştirir—Spring Boot uygulamaları Spring Data, Spring Cloud, Spring Security gibi Spring çerçeve ekosistemindeki diğer projelerle ve Microsoft Azure Spring Cloud gibi diğer güvenilir bulut hizmetleriyle sorunsuz bir şekilde tümleşir.
-
Geliştirme ve test araçları sağlar—Spring Boot’un komut satırı arabirimi (CLI) aracı ve ekli HTTP sunucuları ile Spring tabanlı uygulamaları geliştirmek ve test etmek için ortamlar oluşturmanızı çok kolaylaştırır.
-
Geliştirmeyi kolaylaştıran eklentiler ve araçlar sağlar—Spring Boot, bellek içi veritabanlarıyla ve Apache Maven gibi diğer popüler derleme otomasyon araçlarıyla çalışabilmeniz için eklentiler sağlar.
Java Spring Boot öğreticileri
Spring çerçevesini kullanarak uygulama derlemeyi zaten biliyorsanız, bu bölümde sağlanan öğreticiler, proje başlatıcıları ve belgeleri kullanarak Spring Boot’u kolaylıkla öğrenebilirsiniz. Ancak henüz çerçe hakkında bilginiz olmadığı gibi Spring Boot’u kullanmak için de aceleniz varsa yine de endişelenmenize gerek yok. Spring çerçevesini öğrenmeden de Spring Boot’u öğrenip kullanmaya başlayabilirsiniz, çünkü öğrenirken zaten çerçeveye ilişkin pek çok temel bilgiyi de edineceksiniz. Bu size çerçeve hakkında bilmeniz gereken her şeyi öğretmese de, daha sonra öğrenmeye karar verirseniz size iyi bir başlangıç sağlar.
Uygulama geliştirmeyi daha hızlı ve verimli hale getirmenin yanı sıra Spring Boot’u öğrenmenin bir başka avantajı da Spring Data, Project Reactor ve Spring Security gibi diğer Spring özelliklerini de kullanabilmenizi sağlamasıdır.
Bağımlılık ekleme
- XML tabanlı, örneğin, <beans/> ve <namespace:*/>.
- Ek açıklama tabanlı, örneğin @Component, @Autowired, @Inject.
- Java tabanlı, örneğin @Configuration sınıfları, @Bean yöntemleri.
Denetimin ters çevrilmesi (IoC)
- ApplicationContext—, Spring IoC kapsayıcısı olarak görev alan kök arabirim.
- BeanFactory—Spring kapsayıcıya erişmek için arabirim.
- Beans—ApplicationContext tarafından örneği oluşturulan, toplanan ve yönetilen nesneler.
Yeni başlayanlar için Java Spring Boot öğreticileri
Java uygulaması oluşturun ve uygulamanın güvenliğini sağlayın
Spring Initializr ile Microsoft Entra ID (eski adıyla Azure Active Directory) için Spring Boot başlatıcıyı kullanarak bir Java uygulaması oluşturun.
İlk uygulamanızı Azure Spring Cloud’a dağıtın
Spring Initializr ile oluşturulmuş basit bir Spring Boot sağlamayı uygulaması oluşturmayı, sağlamayı ve izlemeyi öğrenin.
Basit bir Spring Boot mikro hizmeti derleyin
Basit bir mikro hizmet derleyip dağıtın ve ardından bu hizmete Spring Cloud teknolojileri eklemeyi öğrenin.
Daha fazla Spring Boot başlatıcılar
Depolama, güvenlik, kimlik doğrulaması ve anahtar kasası özelliklerini Spring Boot uygulamalarınıza ekleyin.
SSS
-
Spring Boot, Spring tarafından sunulan açık kaynaklı, mikro hizmet tabanlı bir Java web çerçevesidir ve özellikle web uygulamaları ve mikro hizmetler geliştiren yazılım mühendisleri için oldukça faydalıdır.
-
"Java’da Spring Boot" "Java Spring Boot"demenin başka bir yoludur; bu iki terim birbirinin yerine kullanılabilir. Java dil ve platformdur, Spring ise Java’yı temel alan uygulama çerçevesidir ve Spring Boot ek avantajlarla Birlikte Spring çerçevesinin bir uzantısıdır.
-
Spring Boot, genel Spring çerçevesinin işlevselliğine sahiptir, ancak Spring Boot Spring’i öğrenmenizi gerektirmez. Spring Boot öznitelikleri otomatik olarak yapılandırıldığından ve önyargılı yaklaşım Spring uygulamasının geliştirilmesi ve dağıtımıyla ilgili ortak kod ve yapılandırmanın büyük bir kısmını kaldırdığından, geliştiriciler bir uygulamayı daha kısa sürede çalışır hale getirebilir.
-
Evet, yukarıda belirtildiği gibi Spring Boot yazılım geliştirme mimarisine yönelik mikro hizmet yaklaşımı için özellikle yararlıdır. Mikro hizmetler, bağımsız olarak çalışabilen küçük ve özerk ekiplerin kurulması için oldukça popüler bir yöntem olmakla birlikte doğası gereği yalnızca arka uçta çalışır.
-
Geliştirme süresinin azaltılması, üretkenliğin artması ve kullanım kolaylığı, Spring Boot ile uygulama geliştirmenin sağladığı avantajlardan yalnızca bir kaçını oluşturur.
-
Spring web sitesi ve Spring Boot Başlatıcıları ve Microsoft Azure’dan belgelerhakkında pek çok öğretici, hızlı başlangıç kılavuzu ve belgeler mevcuttur. Spring Boot uygulamalarını dağıtmaya hemen başlamak istiyorsanız, Bulutta Büyük Ölçekli Spring Boot Uygulamalarını Hızlandırınbaşlıklı web seminerine göz atın.