Spring nima?

01.07.2026 | Muallif: Jaxongir a.k.a | Kategoriya: Spring Boot | 10 daqiqa o'qish

"What is Spring?". Bu bo‘limda Spring nima, Spring Boot nima uchun kerak, Spring Cloud qayerda ishlatiladi, loyiha strukturasi va @SpringBootApplication nimani anglatishini tushunamiz.


1. Spring nima?

Spring - bu Java’da backend dasturlar yozishni osonlashtiradigan katta ekotizim.

Oddiy qilib aytganda:

Spring - Java dasturchiga enterprise darajadagi web app, REST API, database bilan ishlaydigan tizim, security, microservice va cloud ilovalar yozishda yordam beradigan framework.

Masalan, Spring orqali quyidagilarni yozamiz:

Online do‘kon backend
Bank API
CRM tizim
Telegram bot backend
Admin panel backend
Mobile app uchun API
Microservice tizimlar

2. Nega Spring kerak?

Oddiy Java’da ham backend yozsa bo‘ladi. Lekin katta loyihalarda muammolar chiqadi:

Objectlarni qo‘lda yaratish kerak
Database ulash qiyinlashadi
HTTP requestlarni boshqarish kerak
Security yozish murakkab
Configuration ko‘payib ketadi
Testing qiyinlashadi

Spring shu ishlarni tartibli qilib beradi.

Masalan oddiy Java’da:

UserRepository repository = new UserRepository();
UserService service = new UserService(repository);
UserController controller = new UserController(service);

Spring’da esa ko‘pincha buni o‘zimiz qo‘lda yaratmaymiz. Spring o‘zi kerakli obyektlarni yaratadi va bir-biriga ulab beradi.


3. Spring Framework vs Spring Boot vs Spring Cloud

Bu uchalasini chalkashtirmaslik kerak.

Nomi

Vazifasi

Oddiy tushuntirish

Spring Framework

Asosiy baza

Spring’ning yuragi

Spring Boot

Tez start qilish

Spring loyihani tez va oson ishga tushirish

Spring Cloud

Microservice/cloud

Ko‘p service’li tizimlar uchun yordamchi vositalar


4. Spring Framework nima?

Spring Framework - Spring ekotizimining asosiy qismi.

Unda quyidagi muhim tushunchalar bor:

IoC - Inversion of Control
DI - Dependency Injection
Bean
ApplicationContext
AOP
Transaction
MVC

Hozircha eng muhimi:

Spring Framework objectlarni boshqaradi va kerakli classlarni bir-biriga ulab beradi.

Masalan:

@Service
public class UserService {
    public String getUser() {
        return "Ali";
    }
}

Bu yerda UserService classini Spring boshqaradi.


5. Spring Boot nima?

Spring Boot - Spring asosida tez backend app yaratish uchun ishlatiladi.

Spring Boot’ning asosiy maqsadi:

Kamroq configuration, tezroq ishga tushirish.

Oldin Spring’da juda ko‘p XML yoki manual config yozish kerak bo‘lgan. Spring Boot esa ko‘p narsani avtomatik sozlab beradi.

Masalan, Spring Boot bilan REST API yozish:

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "Salom Spring Boot";
    }
}

Shu kichik kod bilan /hello endpoint tayyor bo‘ladi.


6. Spring Cloud nima?

Spring Cloud - microservice arxitektura uchun kerak bo‘ladi.

Masalan, katta tizimda bir nechta service bo‘ladi:

user-service
payment-service
order-service
notification-service
gateway-service

Spring Cloud yordam beradi:

API Gateway
Service discovery
Config server
Load balancing
Circuit breaker
Distributed tracing

Boshlang'ich bosqichda Spring Cloud’ni chuqur o‘rganish shart emas. Avval Spring Boot’ni yaxshi tushunish kerak.


7. Nega Spring Boot mavjud?

Spring Boot’ning asosiy g‘oyasi:

Convention over configuration

Bu degani:

Agar biz standart yo‘l bilan ishlasak, Spring Boot ko‘p sozlamalarni o‘zi qiladi.

Masalan, biz spring-boot-starter-web dependency qo‘shsak, Spring Boot tushunadi:

Bu web application
REST API kerak bo‘ladi
Tomcat kerak
JSON ishlaydi
Spring MVC kerak

Va bularni o‘zi avtomatik sozlaydi.


8. Starter dependency nima?

Spring Boot’da starter degan tushuncha bor.

Masalan:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

Bu bitta dependency ichida web app uchun kerakli ko‘p kutubxonalar keladi:

Spring MVC
Tomcat
Jackson JSON
Validation basic support
Logging

Ya’ni har birini alohida qo‘shib o‘tirmaymiz.


9. Spring Initializr nima?

Spring Initializr - Spring Boot loyiha yaratib beradigan rasmiy generator.

Sayt:

start.spring.io

U yerda quyidagilar tanlanadi:

Project: Maven yoki Gradle
Language: Java
Spring Boot version
Group: uz.jts
Artifact: demo
Java version
Dependencies

Masalan dependency sifatida quyidagilar tanlanadi:

Spring Web
Spring Data JPA
PostgreSQL Driver
Lombok
Validation
Spring Security

Boshlanishiga birinchi loyiha:

Spring Web
Lombok

yetarli.


10. Spring Boot project structure

Spring Boot loyihada odatda shunday structure bo‘ladi:

demo
 └── src
     ├── main
     │   ├── java
     │   │   └── uz
     │   │       └── jts
     │   │           └── demo
     │   │               ├── DemoApplication.java
     │   │               ├── controller
     │   │               ├── service
     │   │               ├── repository
     │   │               └── model
     │   └── resources
     │       ├── application.properties
     │       └── static
     └── test
         └── java

Muhim papkalar:

Papka

Vazifasi

src/main/java

Java kodlar

src/main/resources

Config fayllar

application.properties

App sozlamalari

src/test/java

Test kodlar


11. DemoApplication.java nima?

Spring Boot loyihada asosiy class bo‘ladi:

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

Bu class application’ni ishga tushiradi.


12. @SpringBootApplication nima qiladi?

@SpringBootApplication - bu bitta annotation, lekin ichida 3 ta katta vazifa bor:

@Configuration
@EnableAutoConfiguration
@ComponentScan

Ya’ni:

1. @Configuration

Bu class konfiguratsiya classi bo‘lishi mumkinligini bildiradi.

2. @EnableAutoConfiguration

Spring Boot’ga avtomatik sozlashni yoqadi.

Masalan:

Agar Spring Web bor bo‘lsa → web server sozlaydi
Agar JPA bor bo‘lsa → database sozlamalarini tayyorlaydi
Agar Security bor bo‘lsa → security filter qo‘shadi

3. @ComponentScan

Spring loyihadagi classlarni qidiradi:

@Component
@Service
@Repository
@Controller
@RestController

va ularni Spring container’ga qo‘shadi.


13. Spring Container nima?

Spring Container - Spring boshqaradigan obyektlar joylashadigan joy.

Spring’da obyektlar Bean deyiladi.

Masalan:

@Service
public class ProductService {
}

Bu classdan Spring obyekt yaratadi. Shu obyekt Bean deyiladi.

Oddiy qilib:

Class → blueprint
Object → real obyekt
Bean → Spring boshqaradigan obyekt

14. Real hayotiy misol

Tasavvur qil:

Controller - mijozdan request oladi
Service - biznes logika bajaradi
Repository - database bilan ishlaydi

Kod:

@RestController
@RequestMapping("/users")
public class UserController {

    private final UserService userService;

    public UserController(UserService userService) {
        this.userService = userService;
    }

    @GetMapping
    public String getUser() {
        return userService.getUser();
    }
}
@Service
public class UserService {

    public String getUser() {
        return "Ali";
    }
}

Bu yerda UserController ichida UserService kerak. Spring UserService obyektini o‘zi yaratib, controller’ga beradi.

Bu jarayon Dependency Injection deyiladi.


15. Boshlang'ich developer uchun eng muhim xulosa

Spring’ni hozircha shunday tushun:

Spring Framework - Java backend uchun asosiy framework
Spring Boot - Spring loyihani tez va oson yaratish vositasi
Spring Cloud - microservice va cloud tizimlar uchun qo‘shimcha vositalar

Spring Boot boshlang'ich developer uchun eng kerakli qism.


16. Eslab qolish kerak bo‘lgan terminlar

Termin

Ma’nosi

Spring

Java backend framework ekotizimi

Spring Boot

Spring app’ni tez yaratish vositasi

Bean

Spring boshqaradigan obyekt

IoC

Object boshqaruvini Spring’ga topshirish

DI

Kerakli obyektni class ichiga berish

Starter

Tayyor dependency to‘plami

Auto-configuration

Avtomatik sozlash

Spring Initializr

Loyiha generatori

ApplicationContext

Spring container


17. Kichik amaliy vazifa

Birinchi Spring Boot endpoint:

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "Salom, Spring!";
    }
}

Brauzerda:

http://localhost:8080/hello

Natija:

Salom, Spring!

18. Interview uchun sodda javob

Savol:

Spring nima?

Javob:

Spring - Java’da backend ilovalar yaratish uchun ishlatiladigan framework. U objectlarni boshqaradi, dependency injection qiladi, web API, database, transaction, security kabi ko‘p narsalarni osonlashtiradi. Spring Boot esa Spring asosida loyihani tez ishga tushirish va kamroq konfiguratsiya bilan ishlash uchun yaratilgan.