Trace Id is missing
Ana içeriğe atla
Ofiste dizüstü bilgisayarlarında çalışan kişiler

Java Spring Boot nedir?

Web uygulamaları ve mikro hizmetler geliştirmek için popüler ve Java tabanlı bir araç olan Spring Boot’a giriş.

Dizüstü bilgisayar ekranını izlerken fareyle harici klavye kullanan bir kişi

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.

Dizüstü bilgisayarına bakan bir kişi.
Tablete bakan bir kadın.

Mikro hizmetler nedir?

Mikro hizmetler yazılım geliştirme mimarisine yönelik bir yaklaşımdır. Mikro hizmetlerdeki "mikro" terimi küçük, yönetilebilir parçalar veya bileşenlerle teslim edilen kodu ifade eder ve her "hizmet" veya çekirdek işlev diğer hizmetlerden bağımsız olarak oluşturulur ve dağıtılır. Bağımsız bileşenler birlikte çalışır ve anlaşmalar olarak adlandırılan önerilen API belgeleri aracılığıyla iletişim kurar. Mikro hizmetlerin bu şekilde küçük ölçekli ve nazaran yalıtılmış olmasının sağladığı pek çok avantaj vardır. Örneğin, bu mimari türü dağıtılmış ve gevşek bir şekilde bağlı olduğundan, bir bileşen başarısız olursa uygulamanın tamamı bozulmaz. Diğer avantajlar gelişmiş üretkenlik, daha kolay bakım, daha iyi iş uyumluluğu ve daha fazla hataya dayanıklılıktır.

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.

Dizüstü bilgisayara ve monitöre bakan bir kişi
VR gözlük takan bir kadın

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 Boot Spring çerçevesinin avantajlarını temel alan bir özellik olduğundan Spring ve Spring Boot karşılaştırması "o mu yoksa bu mu" sorusundan ziyade "her ikisi de" şeklinde bir önerme sağlar. Spring ve Spring Boot birbirine zıt değildir; Spring ve Spring Boot birbiriyle oldukça uyumludur:
kurum genelinde destek planı
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:

  • Esneklik.
  • Önyargısız bir yaklaşım.*
  • Bağımlılıkları özel kodunuzdan kaldırmak için.
  • Oldukça benzersiz bir yapılandırma uygulamak için.
  • Kurumsal uygulamalar geliştirmek için.

Aşağıdakileri elde etmek için Spring Boot’u kullanın:

  • Kullanım kolaylığı.
  • Önyargılı bir yaklaşım.*
  • Hızlıca çalışmaya başlayan kaliteli uygulamalar ve geliştirme süresinin azaltılması.
  • Ortak kod yazmaktan veya XML’yi yapılandırmaktan kaçınmak için.
  • REST API’leri geliştirmek için.
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.

Sandalyede oturan ve masaüstü ekranı izleyen bir kişi

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:

Spring Boot’un avantajları

Spring Boot:

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.

Kulaklık kullanarak dizüstü bilgisayar üzerinden konuşan bir kişi
Bununla birlikte, ilk olarak Spring çerçevesinde bağımlılık ekleme ve denetimi tersine çevirme kavramları hakkında temel bilgiler edinmeniz ilk Spring Boot öğretici deneyiminizin daha kolay geçmesini sağlayacaktır. Aşağıda çok üst düzey bir genel bakış sunulmuştur:

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

Temel bilgileri edindikten sonra, büyük ölçekte Spring Boot uygulamaları derlemek ve dağıtmak için Microsoft ve VMware’den tam olarak yönetilen Azure Spring Cloud hizmetini kullanıma almayı değerlendirebilirsiniz. Alternatif olarak TLS/SSL sertifikalarıyla Spring Boot uygulamalarınızın güvenliğini sağlama konusundaki bu öğretici ile de doğrudan başlayabilirsiniz.

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.

Hazırsanız başlayabiliriz. Ücretsiz Azure hesabınızı hemen ayarlayalım