⚖️
Basics

Spring vs Spring Boot

Farak Kya Hai?
💡 Spring ek COMPLETE CAR ENGINE hai — powerful, customizable, lekin assembly khud karni padti hai (manual configuration). Spring Boot wahi engine hai, LEKIN pehle se ek ready-to-drive CAR mein fit kiya hua — turant chala sakte ho, sensible defaults ke saath.

SPRING framework SAB KUCH provide karta hai — IoC, DI, MVC, Data access — lekin CONFIGURATION manually karni padti hai (XML ya Java config, dependency versions manage karna, embedded server setup karna). Ye POWERFUL hai lekin verbose/time-consuming.

SPRING BOOT, Spring KE UPAR ek layer hai jo AUTO-CONFIGURATION deta hai — sensible defaults automatically apply hote hain based on classpath dependencies. Embedded server (Tomcat/Jetty) built-in hai — standalone JAR ke roop mein run ho sakta hai (external server deploy karne ki zaroorat nahi). "Starter" dependencies (spring-boot-starter-web) related libraries ka SAHI, COMPATIBLE set automatically laati hain.

// Plain Spring — manual configuration:
@Configuration
@EnableWebMvc
@ComponentScan("com.example")
public class WebConfig implements WebMvcConfigurer {
    // ... embedded server setup, view resolver, etc. manually
}

// Spring Boot — ek annotation, sab automatic:
@SpringBootApplication   // = @Configuration + @EnableAutoConfiguration + @ComponentScan
public class MyApp {
    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
        // Embedded Tomcat automatically start ho jaata hai, port 8080 par
    }
}
⚖️
Spring ek COMPLETE CAR ENGINE hai — powerful, customizable, lekin assembly khud karni padti hai (manual configuration). Spring Boot wahi engine hai, LEKIN pehle se ek ready-to-drive CAR mein fit kiya hua — turant chala sakte ho, sensible defaults ke saath.
1 / 2
⚡ Quick Recap
  • Spring = framework, manual configuration
  • Spring Boot = auto-configuration + embedded server + starters
  • Spring Boot apps INTERNALLY Spring hi use karte hain
Is page mein (2 subtopics)

@SpringBootApplication ek META-ANNOTATION hai — teen annotations combine karta hai: @Configuration (ye class configuration source hai), @EnableAutoConfiguration (classpath dekh ke automatically beans configure karo), @ComponentScan (current package aur sub-packages mein @Component classes DHOONDO).

// Ye EK annotation:
@SpringBootApplication
public class MyApp { }

// Iske BARABAR hai:
@Configuration
@EnableAutoConfiguration
@ComponentScan
public class MyApp { }

Plain Spring (bina Boot ke) AAJKAL rare hai, lekin kuch cases mein use hota hai — jab EXISTING legacy application server (jaise WebLogic) mein deploy karna ho (embedded server nahi chahiye), ya jab EXTREME fine-grained control chahiye configuration par (Boot ki "magic" defaults avoid karni ho).

  • Legacy application server deployments
  • Extreme fine-grained configuration control
  • Naye projects ke liye — Spring Boot HAMESHA default choice hai