Skip to content

OguzhanTekeli06/Botas_counting_application_backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Untitled

Spring Boot Nedir?

Spring Boot, Spring Framework'ün bir üst yapısıdır ve Spring tabanlı uygulamaların geliştirilmesini hızlandırmak için tasarlanmıştır. Spring Framework, Java platformu için kapsamlı bir geliştirme çerçevesi sunar ve modüler yapısıyla çeşitli projelerde kullanılabilir. Ancak, Spring Framework'ü konfigüre etmek zaman alıcı olabilir. Spring Boot, bu konfigürasyon sürecini otomatikleştirir ve "Convention over Configuration" (yapılandırma yerine varsayılan ayarlar) prensibiyle çalışır. Spring Boot ile, minimal konfigürasyonla hızlı bir şekilde Spring tabanlı bir uygulama başlatılabilir.

Spring Boot ile Spring Framework Arasındaki Farklar:

Başlangıç Konfigürasyonu:

Spring Framework: Projeye başlarken birçok manuel konfigürasyon gerektirir. XML dosyaları ve Java sınıfları üzerinden yapılan bu konfigürasyonlar zaman alabilir. Spring Boot: Otomatik konfigürasyon sağlar. Uygulamayı çalıştırmak için gerekli olan ayarların büyük kısmını kendisi yapar ve geliştiricilere basit bir başlangıç noktası sunar. Starter POM'lar:

Spring Framework: İhtiyaç duyulan bağımlılıkları manuel olarak Maven veya Gradle gibi araçlarla eklemek gerekir. Spring Boot: "Starter" POM dosyaları ile, yaygın kullanılan bağımlılıkları tek bir satırla projeye dahil edebiliriz (örneğin, spring-boot-starter-web). Gömülü Sunucu:

Spring Framework: Uygulamayı çalıştırmak için bir uygulama sunucusu (Tomcat, Jetty vb.) ayarlamak gerekir. Spring Boot: Tomcat, Jetty gibi sunucuları gömülü olarak getirir ve uygulamanın bağımsız bir JAR dosyası olarak çalışmasını sağlar. Üretim Hazırlığı:

Spring Framework: Üretim ortamı için ek konfigürasyonlar yapmanız gerekebilir. Spring Boot: Sağladığı birçok özellik sayesinde, loglama, hata yönetimi gibi üretim ortamında ihtiyaç duyulan birçok yapı taşını hazır sunar. Spring Boot'taki Önemli Yapılar:

Controller (Denetleyici):

MVC (Model-View-Controller) yapısında, kullanıcı isteklerini işleyen ve uygun bir yanıt döndüren bileşendir. Spring Boot'ta, @RestController veya @Controller anotasyonları ile işaretlenir. @RequestMapping, @GetMapping, @PostMapping gibi anotasyonlar kullanılarak, HTTP istekleri için metotlar tanımlanır. Entity (Varlık):

Veritabanındaki tablolarla ilişkilendirilmiş Java sınıflarıdır. Spring Data JPA kullanılarak veritabanı işlemleri yapılır. @Entity anotasyonu ile işaretlenir. Sınıftaki her bir alan, bir veritabanı sütununu temsil eder. Örneğin, @Id, @Column gibi anotasyonlar kullanılır. Repository (Depo):

Veritabanı işlemlerini gerçekleştiren bileşendir. Spring Data JPA kullanarak CrudRepository, JpaRepository veya PagingAndSortingRepository arayüzlerinden türetilen arayüzlerle veri erişim işlemleri yapılır. Bu arayüzler, CRUD (Create, Read, Update, Delete) işlemlerini otomatik olarak sağlar. Service (Hizmet):

İş mantığını barındıran bileşendir. Veritabanı erişimi (Repository) ve denetleyici (Controller) arasındaki iş mantığını buraya yerleştirilir. @Service anotasyonu ile işaretlenir. Uygulama mantığını burada yalıtarak, kontrol ve test edilebilirlik sağlar. Bu bileşenler, Spring Boot uygulamalarında tipik olarak belirli klasör yapıları altında organize edilir. Örneğin:

src/main/java/com/yourpackage/controller — Denetleyiciler src/main/java/com/yourpackage/entity — Varlıklar src/main/java/com/yourpackage/repository — Depo sınıfları src/main/java/com/yourpackage/service — Hizmet sınıfları Bu yapı, kodun daha düzenli ve anlaşılır olmasını sağlar ve Spring Boot'un otomatik tarama mekanizmaları ile uyumlu çalışır.

Spring Boot'un faydaları ve artıları, Java ile uygulama geliştirenler için birçok avantaj sunar. İşte Spring Boot'un öne çıkan bazı faydaları:

Hızlı Başlangıç:

Spring Boot, önceden yapılandırılmış şablonlar ve otomatik konfigürasyonlarla projelerin hızlı bir şekilde başlamasını sağlar. Minimal ayarla çalışan uygulamalar oluşturabilirsiniz.

Kolay Konfigürasyon:

Spring Boot, yapılandırmayı basitleştirir. Varsayılan ayarlarla otomatik olarak çalışır, ancak ihtiyaç duyulduğunda manuel konfigürasyon da yapılabilir. application.properties veya application.yml dosyaları aracılığıyla özelleştirmeler kolayca yapılabilir.

Gömülü Sunucu Desteği:

Spring Boot, Tomcat, Jetty, veya Undertow gibi sunucuları gömülü olarak getirir. Bu sayede uygulamanızı bağımsız bir JAR dosyası olarak paketleyebilir ve çalıştırabilirsiniz, harici bir sunucu kurulumuna gerek kalmaz.

Kapsamlı Ekosistem ve Entegrasyon:

Spring Boot, Spring Framework'ün geniş ekosistemiyle entegre çalışır. Spring Data, Spring Security, Spring MVC, Spring Batch gibi modüllerle kolay entegrasyon sağlar. Production-Ready (Üretime Hazır) Özellikler:

Spring Boot, uygulamanızı üretim ortamına hazır hale getirmek için bir dizi özellik sunar. Actuator modülü ile uygulama sağlığını izleme, loglama, güvenlik, konfigürasyon özellikleri gibi pek çok üretim seviyesi araç sağlar.

Microservices (Mikroservisler) için İdeal:

Spring Boot, mikroservis mimarisi için idealdir. Hafif ve bağımsız çalışabilen servisler oluşturmayı kolaylaştırır. Netflix OSS, Spring Cloud gibi araçlarla entegrasyon sağlar. Geniş Topluluk ve Destek:

Spring Boot, dünya çapında büyük bir topluluğa sahiptir. Bu, sorunlarla karşılaştığınızda geniş bir destek kaynağına sahip olmanızı sağlar. Ayrıca, Spring Boot ile ilgili birçok eğitim kaynağı ve dokümantasyon bulunmaktadır.

Kolay Test Edilebilirlik:

Spring Boot, birim ve entegrasyon testleri yazmayı kolaylaştırır. Gömülü sunucu desteği, test veritabanı konfigürasyonu gibi özelliklerle test süreçlerini hızlandırır.

Starter POM'lar ile Kolay Bağımlılık Yönetimi:

Spring Boot, Starter POM'lar aracılığıyla projeye dahil edilmesi gereken bağımlılıkları kolayca yönetir. Bu, yaygın kullanılan bağımlılıkların tek bir satırda projeye dahil edilmesini sağlar.

Auto Configuration (Otomatik Yapılandırma):

Spring Boot, projedeki bağımlılıkları ve ayarları analiz ederek gerekli konfigürasyonları otomatik olarak yapar. Bu sayede geliştiriciler yalnızca iş mantığına odaklanabilir.

Kapsamlı Dokümantasyon:

Spring Boot, kapsamlı ve iyi organize edilmiş bir dokümantasyona sahiptir. Geliştiriciler için çeşitli rehberler, referans dokümanlar ve örnek projeler sunar. Geliştirici Verimliliği:

Spring Boot, geliştiricilerin daha az kod yazarak daha fazla iş yapmalarına olanak tanır. Otomatik yapılandırma ve önceden entegre edilmiş bileşenler, geliştirme süresini kısaltır. Spring Boot, modern Java uygulamaları geliştirmek için güçlü ve esnek bir platform sunar. Bu faydalar, hem küçük ölçekli projeler hem de büyük, kompleks sistemler için Spring Boot'u ideal bir tercih haline getirir.

Releases

No releases published

Packages

No packages published

Languages