Spring Boot
- Okunuşu
- spring but
Kısaca
Spring Boot, otomatik yapılandırma ve gömülü web sunucusuyla Spring üzerinde production'a hazır servisleri hızla kurmayı sağlayan Java framework'üdür.
Spring Boot nedir?
Spring Framework, 2000'lerin başından beri kurumsal Java'nın temellerinden biridir; dependency injection'ı ve web, veri ve güvenlik için sunduğu çok sayıda modülle bilinir. Ağır yapılandırmasıyla da bilinirdi. İlk olarak 2014'te yayımlanan Spring Boot bunun çoğunu ortadan kaldırdı: spring-boot-starter-web gibi bir starter bağımlılığı eklersiniz, Boot da bulduklarına göre parçaları otomatik olarak yapılandırır.
Bir Spring Boot uygulaması, Tomcat gibi gömülü bir sunucuyla tek bir çalıştırılabilir JAR olarak çalışır; böylece onu ayrı bir uygulama sunucusuna dağıtmak yerine java -jar app.jar ile başlatırsınız. Controller'lar @RestController ve @GetMapping gibi anotasyonlara sahip düz sınıflardır; Spring de bağımlılıkları onlara constructor'ları üzerinden bağlar.
Çekirdeğin etrafında büyük bir ekosistem vardır: JPA ve Hibernate ile veritabanları için Spring Data, kimlik doğrulama için Spring Security, mikroservis kalıpları için Spring Cloud, sağlık kontrolleri ve metrikler için Actuator. Spring Initializr hazır bir proje üretir; Spring Boot 3 de Java 17 ya da sonrasını gerektirir ve GraalVM ile native imajlara derlemeyi destekler.
Sık yapılan bir yanlış, Spring Boot'un Spring'den farklı bir framework olduğunu düşünmektir. Spring'in üzerinde, varsayılanları seçen ve parçaları birbirine bağlayan bir katmandır; altında hâlâ Spring Framework vardır ve bir proje farklı bir şeye ihtiyaç duyduğunda her varsayılan değiştirilebilir.
Önemli noktalar
- Spring Boot, Spring Framework üzerinde production'a hazır Java uygulamaları kurar.
- Starter'lar ve otomatik yapılandırma elle yapılan kurulumun çoğunun yerini alır.
- Uygulamalar Tomcat gibi gömülü bir sunucuyla tek bir JAR olarak çalışır.
- Spring Data, Security ve Actuator; veritabanlarını, kimlik doğrulamayı ve izlemeyi kapsar.
- Ayrı bir framework değil, Spring üzerinde bir varsayılanlar katmanıdır.
Örnek
@SpringBootApplication
public class BookApplication {
public static void main(String[] args) {
SpringApplication.run(BookApplication.class, args); // starts the embedded server
}
}
@RestController
@RequestMapping("/books")
class BookController {
private final BookRepository books;
BookController(BookRepository books) { // injected by Spring
this.books = books;
}
@GetMapping("/{id}")
ResponseEntity<Book> get(@PathVariable Long id) {
return books.findById(id)
.map(ResponseEntity::ok)
.orElse(ResponseEntity.notFound().build());
}
}Sık sorulan sorular
Spring ile Spring Boot arasındaki fark nedir?
Spring, dependency injection'ı ve birçok modülü olan temel framework'tür. Spring Boot onun üzerinde durur ve otomatik yapılandırma, starter bağımlılıkları ve gömülü bir sunucu ekler; böylece bir Spring uygulaması çok daha az kurulum ister.
Spring Boot mikroservisler için kullanılır mı?
Çok sık. Küçük, kendi başına çalışan JAR'lar, Actuator üzerinden sağlık kontrolleri ve Spring Cloud projeleri onu Java mikroservisleri için yaygın bir seçim yapar.
Spring Boot ile Kotlin kullanabilir miyim?
Evet. Spring Boot Kotlin'i resmî olarak destekler ve Spring Initializr, Gradle ya da Maven ile Kotlin projeleri üretebilir.
İlgili sayfalar
- JavaProgramlama Dilleri, s. 15Java, Java Sanal Makinesi için bayt koda derlenen, statik tipli ve nesne yönelimli bir programlama dilidir; programlar birçok platformda çalışabilir.
- Dependency InjectionYazılım Mimarisi, s. 10Dependency injection, bir nesnenin ihtiyaç duyduğu diğer nesneleri kendisi oluşturmak yerine dışarıdan almasını sağlayan bir tasarım tekniğidir.
- MikroservislerYazılım Mimarisi, s. 24Mikroservisler, bir uygulamanın ağ üzerinden iletişim kuran, küçük ve bağımsız olarak dağıtılabilen servislere bölündüğü bir mimari tarzdır.
- REST APIBackend ve API'ler, s. 38REST API, verileri URL'lerle tanımlanan kaynaklar olarak sunan ve istemcilerin onları standart HTTP metotlarıyla okuyup değiştirmesini sağlayan web API'sidir.
- ORMVeritabanları, s. 24ORM, veritabanı tablolarını programlama dilinizdeki nesnelere eşleyen ve ham SQL yerine kodla veri okuyup yazmanızı sağlayan bir kütüphanedir.
- KotlinProgramlama Dilleri, s. 18Kotlin, JVM üzerinde çalışan, Java ile sorunsuz uyum sağlayan, özlü ve statik tipli bir dildir; Android ve sunucu tarafı geliştirmede yaygın kullanılır.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin