SpringMVC lifecycle-- the overall view
spring-mvc
Solution
There is no good answer to your question. "Sure" is as close as I can get.
You can configure spring using xml files or annotations or a combination of both.
You don't need to write servlets with Spring MVC, but you can if you want. Mostly you can (maybe should) create controller classes (either by extending a Spring controller class or marking a class with the @Controller annotation).
The "mission" of the controller is to perform necessary processing of requests. They do not just "control service processes"
There is no "hand it back" to the dispatcher.
The DispatchServlet must be configured in the web.xml file, this is never optional.
You can (maybe should) have a layer between your controller classes and any web services that you will call from the controller classes.
You can have multiple applicationContexts or use a single applicationContext.
As often as not, the View is a JSP file.
The Controller should add DTOs (data transfer objects) that are used by the view to display non-static information. EDIT: I removed the mention of VO objects, I (like many, it seems) incorrectly conflated DTO and VO patterns.
There is no "behind the scenes". The DispatcherServlet receives a request and passes it to the appropriate controller for processing.
Read section 17 of the Spring Framework Reference
Problem
I'm way new to Spring. I am looking to verify the following understanding of SpringMVC lifecycle-- to put things into places in the overall view: The entire process is request-driven. There is a Front Controller pattern and the Front Controller in Spring MVC is DispatcherServlet. Upon every incoming request from the user, Spring manages the entire life cycle as described in here. In the overall view, DispatcherServlet dispatches the request to a controller for a service at the back-end. Once this is done, it hands it in to the View component of MVC for its view to be prepared in response to the user. In more detail, DispatcherServlet uses Handlers to decide "which controller" to serve that request. The controllers are/should be "light-weighted"-- should be decoupled from the service processes at back end as a good design practice-- they hold references to the service(s) and invoke the right one(s). Their "mission" is to control the service process(es) for building the model and handing it back to the dispatcher for the next step. The View component in itself has 2 parts: first the ViewResolver picks the right type of look for View to put the model into the final format for the user. From the developer's angle-- the DispatcherServlet is a behind-the-scenes thing. All i do is to define, and configure it, if necessary, in web.xml. As the developer, I instantiate an ApplicationContext (there are many ApplicationContext types-- i pick one depending on what i need, typically the WebApplicationContext(?) ). AplicationContext is the factory that creates all the servlets/beans including the DispatcherServlet, using their descriptions in the .xml files. The DispatcherServlet then runs behind the scenes and manages the entire process-- goes&gets the controllers, using the annotations or the their .xml descriptions, views, handlers, validators etc. I am wondering whether this description is holds-- valid&complete, and whether there are big missing pieces in it. Thanks in advance.