⚙️ApplicationContext in Spring Boot – The Core of IoC
🧠 What is ApplicationContext?
ApplicationContext is Spring's brain. It is the container that:
- ✅ Creates all your beans (objects)
- ✅ Wires them together (dependency injection)
- ✅ Manages their life cycle
- ✅ Provides access to them anywhere in the app
🎯 One-Line Definition:
ApplicationContext is the place where Spring keeps and manages all your @Component, @Service, and @Controller beans.
📆 Example: How It Works
1. Bean class:
@Component
public class MyBean {
public void sayHi() {
System.out.println("Hi from MyBean!");
}
}
2. Spring Boot App:
@SpringBootApplication
public class MyApp implements CommandLineRunner {
@Autowired
MyBean myBean;
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args); // Creates ApplicationContext
}
@Override
public void run(String... args) {
myBean.sayHi();
}
}
🔧 Internally
When you run SpringApplication.run(...), Spring does the following:
- Creates an
ApplicationContext - Scans for
@Componentand other beans - Instantiates those objects
- Stores them in the context
- Makes them available for injection using
@Autowired
🧠 You Can Also Get Beans Manually:
ApplicationContext context = SpringApplication.run(MyApp.class, args);
MyBean myBean = context.getBean(MyBean.class);
myBean.sayHi();
✅ Summary Table
| Concept | Meaning |
|---|---|
| ApplicationContext | Container holding all Spring beans |
| getBean() | Gets a bean from the container |
| @Autowired | Shortcut to get a bean from the container |
🧠 What ApplicationContext Actually Is
ApplicationContext is not a bean. It’s the core IoC container in Spring that creates, injects, and manages all beans.
🔄 Quick Breakdown
| Concept | Role |
|---|---|
| @Component, @Service | Define beans (objects managed by Spring) |
| ApplicationContext | Spring’s container that handles those beans |
| IoC Container | The design idea (implemented by ApplicationContext) |
🔧 Think of It Like This:
- Beans = tools
- ApplicationContext = the toolbox that gives you the right tool
- IoC container = the system that manages the toolbox
✅ Another Code Example
@SpringBootApplication
public class MyApp {
public static void main(String[] args) {
ApplicationContext context = SpringApplication.run(MyApp.class, args);
MyService service = context.getBean(MyService.class);
service.doSomething();
}
}
📌 Final Takeaway:
ApplicationContext is the heart of Spring — where your beans live, connect, and are managed automatically.
Comments
Post a Comment