Spring Boot (Spring MVC) માં, એક request servlet container, Filters ની એક chain, કેન્દ્રીય DispatcherServlet, પછી interceptors અને તમારા @Controller માંથી પસાર થાય છે, અને return value ને HTTP response માં રૂપાંતરિત કરવામાં આવે છે.
Spring Boot (Spring MVC) માં, એક request servlet container, Filters ની એક chain, કેન્દ્રીય DispatcherServlet, પછી interceptors અને તમારા @Controller માંથી પસાર થાય છે, અને return value ને HTTP response માં રૂપાંતરિત કરવામાં આવે છે.
Servlet container (Tomcat)
▼
Filter chain ── (CharacterEncoding, Security, CORS, ...)
▼
DispatcherServlet ── front controller
▼
HandlerMapping ── @Controller method શોધો
▼
HandlerInterceptor.preHandle
▼
Argument resolvers ── @RequestBody / @PathVariable / @RequestParam bind કરો
▼
Controller method ── તમારી logic → object અથવા ResponseEntity પરત કરે છે
▼
HandlerInterceptor.postHandle
▼
HttpMessageConverter / ViewResolver ── JSON માં serialize કરો અથવા view render કરો
▼
HandlerInterceptor.afterCompletion → Response ──▶ client
Filter chain ને સોંપે છે. Filters (Spring Security સહિત) સૌથી બહારનું layer છે અને MVC તેને જુએ તે પહેલાં request ને block અથવા wrap કરી શકે છે.preHandle — HandlerInterceptors controller પહેલાં ચાલે છે (auth checks, logging, timing); false પરત કરવાથી request બંધ થાય છે.@PathVariable, @RequestParam, અને @RequestBody (HttpMessageConverter દ્વારા) bind અને validate થાય છે.@RestController method business logic ચલાવે છે અને એક object અથવા ResponseEntity પરત કરે છે.postHandle, પછી return value ને એક HttpMessageConverter (Jackson દ્વારા JSON) દ્વારા serialize કરવામાં આવે છે અથવા એક view ને ViewResolver દ્વારા render કરવામાં આવે છે.afterCompletion response commit થયા પછી ચાલે છે; @ExceptionHandler/@ControllerAdvice રસ્તામાં exceptions ને હેન્ડલ કરે છે.// 4/7/8. interceptor
public class TimingInterceptor implements HandlerInterceptor {
public boolean preHandle(HttpServletRequest req, HttpServletResponse res, Object h) {
req.setAttribute("started", System.nanoTime());
return true; // false = short-circuit
}
}
// 6. controller
@RestController
class ItemController {
@GetMapping("/items/{id}") // 3. mapping
ResponseEntity<Item> show(@PathVariable Long id) { // 5. argument resolution
return ResponseEntity.ok(service.find(id)); // 7. JSON માં serialize
}
}
Spring ના lifecycle માં બે અલગ extension layers છે જેને interviewers પ્રોબ કરવાનું પસંદ કરે છે: Filters (servlet-level, સૌથી બહાર — જ્યાં Spring Security રહે છે) અને Interceptors (Spring MVC-level, controller ની આસપાસ). ક્રમ જાણવો — filters, DispatcherServlet, mapping, interceptor preHandle, argument binding, controller, message conversion, afterCompletion — તમને જણાવે છે કે authentication ને logging ની સામે ક્યાં મૂકવું, શા માટે એક Security filter કોઈ પણ interceptor અથવા controller ચાલે તે પહેલાં request ને નકારે છે, અને @ControllerAdvice સમગ્ર flow માં exception handling ને કેવી રીતે કેન્દ્રિત કરે છે.
વિગતવાર જવાબો સાથે IT ઇન્ટરવ્યૂ પ્રશ્નોની લાઇબ્રેરી — જુનિયરથી સિનિયર સુધી.
દાન કરો