Jet Academy Logo
Məzmunə keç / Skip to content

Spring Boot nədir?

Spring Boot — Java proqramlaşdırma dilində server tərəfli tətbiqlərin daha sürətli və rahat hazırlanmasını təmin edən, Spring Framework ekosisteminə daxil olan texnologiyadır. Spring Boot xüsusilə Backend tətbiqlərin, REST API-lərin, mikroservislərin və müxtəlif korporativ sistemlərin hazırlanmasında geniş istifadə olunur. Sadə dillə desək, Spring Framework güclü imkanlar təqdim edir, lakin layihənin qurulması və konfiqurasiyası müəyyən qədər mürəkkəb ola bilər. Spring Boot isə bu proseslərin böyük hissəsini avtomatlaşdıraraq proqramçının layihəyə daha tez başlamasına imkan verir. Məsələn, Java ilə REST API hazırlamaq istəyirsinizsə, server konfiqurasiyasını, kitabxanaları və müxtəlif parametrləri sıfırdan qurmaq əvəzinə Spring Boot vasitəsilə hazır strukturdan istifadə etmək mümkündür.

Spring Boot nə üçün istifadə olunur?

Spring Boot əsasən Java Backend tətbiqlərinin hazırlanması üçün istifadə olunur. Onun vasitəsilə REST API, e-commerce sistemlərinin backend hissəsi, bank və maliyyə tətbiqləri, istifadəçi idarəetmə sistemləri, mikroservislər və müxtəlif korporativ tətbiqlər hazırlamaq mümkündür. Məsələn, onlayn mağazada istifadəçi məhsullara baxır, hesabına daxil olur və sifariş verir. Frontend istifadəçinin gördüyü interfeysi təqdim edir. Spring Boot ilə hazırlanmış Backend isə istifadəçinin sorğusunu qəbul edə, verilənlər bazasından məlumat ala, biznes məntiqini işlədə və nəticəni API vasitəsilə Frontend-ə qaytara bilər.

Spring Boot necə işləyir?

Spring Boot Spring Framework üzərində işləyir və proqramçının çoxsaylı konfiqurasiyaları əl ilə etməsi ehtiyacını azaltmağa çalışır. Spring Boot tətbiqi başladıqda layihədə istifadə edilən dependency-lərə və mövcud konfiqurasiyalara baxaraq uyğun komponentlərin bir hissəsini avtomatik konfiqurasiya edə bilər. Məsələn, layihəyə web dependency əlavə olunubsa, Spring Boot veb tətbiq üçün lazım olan uyğun infrastrukturu hazırlaya bilər.

Sadə Spring Boot tətbiqinin başlanğıcı belə görünə bilər:

@SpringBootApplication

public class Application {


public static void main(String[] args) {

SpringApplication.run(Application.class, args);

}

}

SpringApplication.run() tətbiqi başladır.

@SpringBootApplication isə Spring Boot tətbiqinin əsas annotasiyalarından biridir və tətbiqin konfiqurasiyası, component scanning və auto-configuration mexanizmlərinin işə salınmasında iştirak edir.

Spring və Spring Boot arasında fərq nədir?

Spring Framework və Spring Boot bir-biri ilə əlaqəli olsa da, eyni anlayış deyil. Spring Framework Java tətbiqlərinin hazırlanması üçün Dependency Injection, web development, data access, security və digər imkanlar təqdim edən geniş framework ekosistemidir. Spring Boot isə Spring əsasında tətbiqlərin qurulmasını və konfiqurasiyasını sadələşdirir.

Sadə müqayisə ilə:

Spring Framework → əsas imkanlar və infrastrukturu təqdim edir

Spring Boot → Spring tətbiqini daha sürətli qurmağa və işlətməyə kömək edir Spring Boot Spring Framework-ü əvəz etmir. Əksinə, onun imkanlarından istifadə edir.

Auto-Configuration nədir?

Auto-Configuration Spring Boot-un əsas xüsusiyyətlərindən biridir. Ənənəvi Spring layihəsində proqramçı müxtəlif komponentlərin konfiqurasiyasını özü hazırlamalı ola bilər. Spring Boot isə layihədə hansı dependency-lərin olduğunu və hansı konfiqurasiyaların mövcud olduğunu analiz edərək uyğun parametrlərin bir hissəsini avtomatik qurmağa çalışır. Məsələn, Spring Data JPA və uyğun database driver əlavə olunubsa, Spring Boot database ilə işləmək üçün lazım olan infrastrukturu avtomatik konfiqurasiya edə bilər. Lazım gəldikdə proqramçı həmin avtomatik parametrləri dəyişə və öz xüsusi konfiqurasiyasını yaza bilər.

Spring Boot Starter nədir?

Spring Boot Starter müəyyən funksionallıq üçün lazım olan dependency-ləri birlikdə təqdim edən hazır dependency paketidir.

Məsələn, REST API yaratmaq üçün çox istifadə olunan starter-lərdən biri:

spring-boot-starter-web

ola bilər.

Database ilə JPA vasitəsilə işləmək üçün:

spring-boot-starter-data-jpa

Security üçün isə:

spring-boot-starter-security

istifadə edilə bilər.

Starter-lərin məqsədi proqramçının hər kitabxananı ayrıca tapıb uyğun versiyalarını əl ilə seçməsi ehtiyacını azaltmaqdır.

Embedded Server nədir?

Spring Boot-un üstünlüklərindən biri tətbiqin embedded web server ilə işləyə bilməsidir. Məsələn, Spring Boot web tətbiqlərində Tomcat kimi server tətbiqin daxilində işləyə bilər. Bu halda ayrıca server quraşdırıb tətbiqi WAR faylı kimi deploy etmək məcburi deyil. Spring Boot tətbiqini executable JAR kimi hazırlayıb belə başlatmaq mümkündür:

java -jar application.jar

Bu xüsusiyyət deployment prosesini sadələşdirir və xüsusilə müasir Backend və mikroservis layihələrində rahatlıq yaradır.

Spring Boot Annotation nədir?

Spring ekosistemində annotasiyalar framework-ə müəyyən class və metodların hansı funksiyanı yerinə yetirdiyini bildirmək üçün geniş istifadə olunur.

Spring Boot layihələrində ən çox rast gəlinən annotasiyalara aşağıdakılar daxildir:

@SpringBootApplication — tətbiqin əsas başlanğıc class-ını müəyyən edir.

@RestController — REST API request-lərini qəbul edən controller yaratmağa kömək edir.

@GetMapping — HTTP GET sorğusunu müəyyən metoda bağlayır.

@PostMapping — HTTP POST sorğusunu idarə edir.

@Service — biznes məntiqinin yerləşdiyi service class-ını göstərir.

@Repository — data access layer üçün istifadə edilir.

@Entity — database cədvəli ilə əlaqələndirilən JPA entity-ni müəyyən edir.

Bu annotasiyalar Spring Boot tətbiqinin strukturlaşdırılmasını asanlaşdırır.

Spring Boot ilə REST API necə yaradılır?

Spring Boot-un ən geniş istifadə sahələrindən biri REST API-lərin hazırlanmasıdır.

Sadə endpoint belə yaradıla bilər:

@RestController

@RequestMapping("/api")

public class CourseController {


@GetMapping("/courses")

public String getCourses() {

return "Kursların siyahısı";

}

}

İstifadəçi:

GET /api/courses

sorğusu göndərdikdə controller həmin request-i qəbul edir və cavab qaytarır. Real tətbiqlərdə cavab çox vaxt JSON formatında olur. REST API vasitəsilə Spring Boot Backend Frontend, mobil tətbiq və başqa sistemlərlə əlaqə yarada bilər. API anlayışını daha ətraflı öyrənmək üçün JET Academy-nin API nədir? termin səhifəsi ilə tanış ola bilərsiniz.

Controller, Service və Repository nədir?

Spring Boot layihələrində tez-tez layered architecture istifadə olunur.

Sadələşdirilmiş struktur belə ola bilər:

Controller → Service → Repository → Database

Controller HTTP request-ləri qəbul edir və response qaytarır. Service tətbiqin biznes məntiqini həyata keçirir. Repository verilənlər bazası ilə əlaqəni idarə edir. Məsələn, istifadəçi /products endpoint-inə sorğu göndərir. Controller request-i qəbul edir, Service hansı əməliyyatın aparılacağını müəyyənləşdirir, Repository isə database-dən məhsul məlumatlarını əldə edir. Bu yanaşma kodun müxtəlif məsuliyyətlər üzrə ayrılmasına və böyük layihələrin daha rahat idarə olunmasına kömək edir.

Dependency Injection nədir?

Dependency Injection Spring Framework-un əsas prinsiplərindən biridir. Təsəvvür edin ki, ProductService məlumatları almaq üçün ProductRepository-yə ehtiyac duyur. Service repository obyektini özü yaratmaq əvəzinə Spring həmin dependency-ni ona təqdim edə bilər.

Məsələn:

@Service

public class ProductService {


private final ProductRepository repository;


public ProductService(ProductRepository repository) {

this.repository = repository;

}

}

Burada ProductService özü new ProductRepository() yaratmır. Spring uyğun dependency-ni taparaq constructor vasitəsilə təqdim edir. Bu yanaşma component-lər arasında sərt asılılığı azaltmağa, testlərin yazılmasını və kodun idarə olunmasını asanlaşdırmağa kömək edir.

Spring Boot və verilənlər bazası necə işləyir?

Spring Boot müxtəlif relational və NoSQL database sistemləri ilə işləyə bilər. Java Backend layihələrində PostgreSQL, MySQL və digər relational database-lər geniş istifadə olunur. Database konfiqurasiyası application.properties və ya application.yml daxilində müəyyən edilə bilər.

Məsələn:

spring.datasource.url=jdbc:postgresql://localhost:5432/shop

spring.datasource.username=postgres

spring.datasource.password=password

Daha sonra Spring Data və JPA vasitəsilə tətbiqin database ilə işləməsini təşkil etmək mümkündür. Database daxilində məlumatların sorğulanması və idarə edilməsi üçün SQL bilikləri də Backend proqramçı üçün vacibdir. Ətraflı məlumat üçün SQL nədir? səhifəsinə baxa bilərsiniz.

JPA nədir?

JPA — Java Persistence API Java obyektlərinin relational database strukturları ilə əlaqələndirilməsi üçün standart spesifikasiyadır.

Məsələn, Java-da:

@Entity

public class Product {


@Id

private Long id;


private String name;

private BigDecimal price;

}

class-ı database-dəki Product məlumatını təmsil edə bilər. JPA proqramçıya bir çox database əməliyyatını birbaşa Java obyektləri üzərindən idarə etməyə imkan verir.

Hibernate nədir?

Hibernate JPA spesifikasiyasının ən geniş istifadə olunan implementasiyalarından biridir. Spring Boot layihələrində Spring Data JPA ilə birlikdə Hibernate tez-tez istifadə olunur. Bu texnologiyalar sayəsində proqramçı hər CRUD əməliyyatı üçün bütün SQL sorğularını əl ilə yazmaq məcburiyyətində qalmaya bilər.

Məsələn:

public interface ProductRepository

extends JpaRepository<Product, Long> {

}

Bu repository vasitəsilə məlumat əlavə etmək, tapmaq, yeniləmək və silmək üçün hazır imkanlardan istifadə etmək mümkündür. Bununla belə, Backend proqramçı üçün SQL-i başa düşmək yenə vacibdir. Çünki database performansı, relation-lar, query-lər və optimizasiya zamanı SQL biliklərinə ehtiyac yaranır.

Spring Boot Configuration necə edilir?

Spring Boot tətbiqinin parametrləri əsasən:

application.properties

və ya

application.yml

fayllarında saxlanıla bilər.

Məsələn:

server.port=8081

spring.application.name=shop-service

Burada server portu və tətbiqin adı konfiqurasiya edilir. Database connection, logging, security və müxtəlif üçüncü tərəf servislərin parametrləri də external configuration vasitəsilə idarə edilə bilər. Bu yanaşma kodu dəyişmədən müxtəlif mühitlər üçün konfiqurasiya hazırlamağa kömək edir.

Spring Profiles nədir?

Development, testing və production mühitlərində tətbiqin fərqli parametrlərə ehtiyacı ola bilər. Spring Profiles bu konfiqurasiyaları ayırmağa imkan verir.

Məsələn:

application-dev.properties

application-prod.properties

Development mühitində lokal database, production-da isə real server database-i istifadə oluna bilər. Beləliklə eyni tətbiq müxtəlif mühitlərdə fərqli konfiqurasiyalarla işləyə bilər.

Spring Boot Security necə işləyir?

Spring Boot tətbiqlərində authentication və authorization üçün Spring Security geniş istifadə olunur. Authentication istifadəçinin kim olduğunu müəyyən edir. Authorization isə həmin istifadəçinin hansı resurslara daxil ola biləcəyini müəyyən edir.

Məsələn:

/admin

endpoint-inə yalnız administrator roluna sahib istifadəçilərin daxil olmasına icazə verilə bilər. REST API layihələrində JWT kimi token əsaslı authentication mexanizmləri də istifadə edilə bilər.

JET Academy-nin Java Backend proqramında Authentication, Authorization, JWT və API endpoint-lərinin qorunması ayrıca öyrədilir.

Spring Boot və Microservices arasında hansı əlaqə var?

Spring Boot mikroservis əsaslı Backend sistemlərinin hazırlanmasında geniş istifadə olunur. Monolithic tətbiqdə bir çox funksiya eyni tətbiqin daxilində yerləşə bilər. Microservices arxitekturasında isə sistem daha kiçik və müəyyən funksiyaya cavabdeh servislərə bölünür.

Məsələn, e-commerce platformasında ayrıca:

User Service

Product Service

Order Service

Payment Service

yaradıla bilər.

Bu servislərin hər biri ayrıca Spring Boot tətbiqi kimi hazırlana bilər. Servislər REST API və ya Kafka, RabbitMQ kimi messaging texnologiyaları vasitəsilə bir-biri ilə əlaqə yarada bilər.

Spring Boot və Docker necə birlikdə istifadə olunur?

Spring Boot tətbiqi Docker container daxilində işlədilə bilər. Bu, tətbiqin Java runtime və digər ehtiyacları ilə birlikdə standart mühitdə paketlənməsinə imkan verir.

Sadə proses belə ola bilər:

Spring Boot tətbiqi → JAR → Docker Image → Container

Container yanaşması tətbiqin developer kompüterində, test mühitində və production serverdə daha ardıcıl formada işləməsinə kömək edə bilər. Docker xüsusilə mikroservis layihələrində geniş istifadə olunur.

Spring Boot Actuator nədir?

Spring Boot Actuator işləyən tətbiqin vəziyyəti haqqında əlavə məlumatlar təqdim edən production yönümlü funksiyalar toplusudur. Actuator vasitəsilə tətbiqin health vəziyyəti, metrics və digər əməliyyat məlumatlarına baxmaq mümkündür.

Məsələn:

/actuator/health

endpoint-i tətbiqin işləmə vəziyyətini yoxlamaq üçün istifadə edilə bilər.

Production sistemlərində monitoring və observability üçün bu tip məlumatlar vacibdir.

Spring Boot-da səhvlər necə idarə olunur?

Backend tətbiqlərində request zamanı müxtəlif xətalar yarana bilər. Məsələn, istifadəçi mövcud olmayan məhsulu istəyə bilər və ya göndərilən məlumat düzgün olmaya bilər. Spring Boot-da exception-ların idarə olunması üçün @ExceptionHandler və @ControllerAdvice kimi mexanizmlərdən istifadə etmək mümkündür. Məqsəd istifadəçiyə anlaşılmaz server xətası əvəzinə strukturlaşdırılmış response təqdim etməkdir.

Məsələn:

{

"status": 404,

"message": "Məhsul tapılmadı"

}

Problemin səbəbini müəyyən etmək üçün log-lar, debugger, stack trace və testlərdən də istifadə olunur. Bu proses proqramlaşdırmada Debugging anlayışı ilə sıx əlaqəlidir.

Spring Boot-un üstünlükləri nələrdir?

Spring Boot Java Backend development prosesində bir çox işi sadələşdirə bilər. Auto-configuration və starter dependency-lər ilkin layihə quruluşunu sürətləndirir. Embedded server tətbiqi standalone şəkildə işlətməyə imkan verir. Spring ekosistemi isə database, security, messaging, testing və digər funksiyalar üçün geniş imkanlar təqdim edir. Bundan əlavə, Spring Boot həm monolithic tətbiqlərdə, həm REST API-lərdə, həm də microservices layihələrində istifadə oluna bilər.

Spring Boot-un çatışmazlıqları varmı?

Spring Boot öyrənməyə başlayan şəxslər üçün ilk mərhələdə mürəkkəb görünə bilər. Spring Framework, Dependency Injection, annotations, database əlaqələri, JPA, Security və digər anlayışların birlikdə öyrənilməsi tələb olunur. Auto-configuration bir çox prosesi avtomatlaşdırdığı üçün proqramçı yalnız hazır annotasiyaları əzbərləməklə kifayətlənməməlidir. Framework-ün arxa planda hansı işi gördüyünü başa düşmək vacibdir. Böyük tətbiqlərdə düzgün arxitektura, database optimizasiyası, təhlükəsizlik və monitorinq yenə proqramçının məsuliyyətindədir.

Spring Boot öyrənmək üçün əvvəlcə nə bilmək lazımdır?

Spring Boot-a birbaşa başlamazdan əvvəl Java əsaslarını yaxşı bilmək faydalıdır. Dəyişənlər, data types, metodlar, class və object-lər, exception handling, collections və xüsusilə Obyekt Yönümlü Proqramlaşdırma anlayışları yaxşı baza yaradır. Daha sonra SQL, HTTP, API və database anlayışlarını öyrənmək məsləhətdir.

Öyrənmə ardıcıllığını belə qurmaq mümkündür:

Java → OOP → SQL → HTTP və REST API → Spring Framework əsasları → Spring Boot → JPA/Hibernate → Spring Security → Docker → Microservices

Spring Boot-u yaxşı mənimsəmək üçün yalnız nəzəri mövzularla kifayətlənməmək vacibdir. CRUD API, istifadəçi qeydiyyatı sistemi, e-commerce backend və mikroservis əsaslı kiçik layihələr hazırlamaq mövzuları praktikada daha yaxşı anlamağa kömək edir.

Spring Boot, Java, PostgreSQL, REST API, Hibernate, Docker, Mikroservislər, Kafka və RabbitMQ kimi müasir Backend texnologiyalarını real layihələr üzərində öyrənmək istəyirsinizsə, JET Academy-nin Java Backend Proqramlaşdırma Təlimi ilə tanış ola bilərsiniz.

Tədris sahələrimiz barədə məlumat almaq üçün qeydiyyatdan keçin

IT sahəsini öyrənməyə başla