Spring Framework FAQ: Top Questions
45. What is the difference between Spring MVC and Spring WebFlux?
Spring MVC
is based on the traditional servlet API and blocking I/O, while Spring WebFlux
is designed for reactive programming and non-blocking I/O.
📘 Comparison:
- Spring MVC: Thread-per-request model using servlet containers.
- Spring WebFlux: Asynchronous, reactive streams using Project Reactor.
📥 Code Snippets:
@RestController
public class MvcController {
@GetMapping("/hello")
public String sayHello() {
return "Hello from MVC";
}
}
@RestController
public class FluxController {
@GetMapping("/hello")
public Mono<String> sayHello() {
return Mono.just("Hello from WebFlux");
}
}
🏆 Expected Output:
Spring MVC returns String; WebFlux returns a reactive Mono<String>.
🛠️ Use Cases:
- Use MVC for traditional web apps or blocking I/O.
- Use WebFlux for high concurrency and reactive systems.