This article comes from java interview questions. It shares spring-related interview questions with you. I hope it can help you. 1. Let’s talk about the spring mvc running process; 2. What clients are there for spring mvc? 3. What is the role of @RequestMapping.
1. Let’s talk about the spring mvc operation process
(Related recommendations: java interview questions)
Spring running process description:
1. The user sends a request to the server, and the request is captured by the Spring front-end control Servelt DispatcherServlet;
2. DispatcherServlet parses the request URL , get the request resource identifier (URI). Then according to the URI, call HandlerMapping to obtain all related objects configured by the Handler (including the Handler object and the interceptor corresponding to the Handler object), and finally return it in the form of a HandlerExecutionChain object;
3. DispatcherServlet based on the obtained Handler , select a suitable HandlerAdapter; (Note: If the HandlerAdapter is successfully obtained, the preHandler(...) method of the interceptor will be executed at this time)
4. Extract the model data in the Request and fill in the Handler Parameter, start executing Handler (Controller). During the process of filling in the Handler's input parameters, Spring will help you do some additional work according to your configuration:
HttpMessageConveter: Convert the request message (such as Json, xml and other data) into an object and convert the object into the specified response information;
Data conversion: perform data conversion on the request message. For example, String is converted into Integer, Double, etc.;
Data radicalization: Format the data of the request message. Such as converting strings into formatted numbers or formatted dates;
Data verification: Verify the validity of the data (length, format, etc.), and store the verification results in BindingResult or Error ;
5. After Handler execution is completed, return a ModelAndView object to DispatcherServlet;
6. Based on the returned ModelAndView, select a suitable ViewResolver (must be registered to the ViewResolver in the Spring container) and returns it to the DispatcherServlet;
7. ViewResolver combines Model and View to render the view;
8. Returns the rendering result to the client.
2. What are the components of spring mvc?
Core components of Spring MVC:
1. DispatcherServlet: central controller, forwards requests to specific control classes
2. Controller: specific processing Requested controller
3. HandlerMapping: Mapping processor, responsible for mapping the mapping strategy when the central processor forwards it to the controller
4. ModelAndView: Encapsulation of the data returned by the service layer and the view layer Class
5. ViewResolver: View resolver, parsing specific views
6. Interceptors: Interceptors, responsible for intercepting the requests we define and then processing them
3. What is the role of @RequestMapping?
RequestMapping is an annotation used to handle request address mapping, which can be used on classes or methods. Used on a class, it means that all methods in the class that respond to requests use this address as the parent path.
The RequestMapping annotation has six attributes. Below we divide it into three categories for explanation.
value, method:
value: Specify the actual address of the request. The specified address can be in URI Template mode (will be explained later);
method: Specify the requested method type, GET, POST, PUT, DELETE, etc.;
consumes, produces
consumes: Specify the submitted content type (Content-Type) for processing the request, such as application/json, text/html;
produces: Specify the returned content type, only when the request header The specified type will be returned only if the (Accept) type in the The parameter value is , so that the method can process it.
headers: The specified request must contain certain specified header values in order for this method to process the request.
The above is the detailed content of 2020 New Java Interview Questions-Spring (3). For more information, please follow other related articles on the PHP Chinese website!