2020 New Java Interview Questions-Spring (3)
Jun 29, 2020 pm 05:10 PMThis 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!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

There are three common methods to traverse Map in Java: 1. Use entrySet to obtain keys and values at the same time, which is suitable for most scenarios; 2. Use keySet or values to traverse keys or values respectively; 3. Use Java8's forEach to simplify the code structure. entrySet returns a Set set containing all key-value pairs, and each loop gets the Map.Entry object, suitable for frequent access to keys and values; if only keys or values are required, you can call keySet() or values() respectively, or you can get the value through map.get(key) when traversing the keys; Java 8 can use forEach((key,value)->

In Java, Comparable is used to define default sorting rules internally, and Comparator is used to define multiple sorting logic externally. 1.Comparable is an interface implemented by the class itself. It defines the natural order by rewriting the compareTo() method. It is suitable for classes with fixed and most commonly used sorting methods, such as String or Integer. 2. Comparator is an externally defined functional interface, implemented through the compare() method, suitable for situations where multiple sorting methods are required for the same class, the class source code cannot be modified, or the sorting logic is often changed. The difference between the two is that Comparable can only define a sorting logic and needs to modify the class itself, while Compar

To deal with character encoding problems in Java, the key is to clearly specify the encoding used at each step. 1. Always specify encoding when reading and writing text, use InputStreamReader and OutputStreamWriter and pass in an explicit character set to avoid relying on system default encoding. 2. Make sure both ends are consistent when processing strings on the network boundary, set the correct Content-Type header and explicitly specify the encoding with the library. 3. Use String.getBytes() and newString(byte[]) with caution, and always manually specify StandardCharsets.UTF_8 to avoid data corruption caused by platform differences. In short, by

std::chrono is used in C to process time, including obtaining the current time, measuring execution time, operation time point and duration, and formatting analysis time. 1. Use std::chrono::system_clock::now() to obtain the current time, which can be converted into a readable string, but the system clock may not be monotonous; 2. Use std::chrono::steady_clock to measure the execution time to ensure monotony, and convert it into milliseconds, seconds and other units through duration_cast; 3. Time point (time_point) and duration (duration) can be interoperable, but attention should be paid to unit compatibility and clock epoch (epoch)

HashMap implements key-value pair storage through hash tables in Java, and its core lies in quickly positioning data locations. 1. First use the hashCode() method of the key to generate a hash value and convert it into an array index through bit operations; 2. Different objects may generate the same hash value, resulting in conflicts. At this time, the node is mounted in the form of a linked list. After JDK8, the linked list is too long (default length 8) and it will be converted to a red and black tree to improve efficiency; 3. When using a custom class as a key, the equals() and hashCode() methods must be rewritten; 4. HashMap dynamically expands capacity. When the number of elements exceeds the capacity and multiplies by the load factor (default 0.75), expand and rehash; 5. HashMap is not thread-safe, and Concu should be used in multithreaded

JavaScript data types are divided into primitive types and reference types. Primitive types include string, number, boolean, null, undefined, and symbol. The values are immutable and copies are copied when assigning values, so they do not affect each other; reference types such as objects, arrays and functions store memory addresses, and variables pointing to the same object will affect each other. Typeof and instanceof can be used to determine types, but pay attention to the historical issues of typeofnull. Understanding these two types of differences can help write more stable and reliable code.

InJava,thestatickeywordmeansamemberbelongstotheclassitself,nottoinstances.Staticvariablesaresharedacrossallinstancesandaccessedwithoutobjectcreation,usefulforglobaltrackingorconstants.Staticmethodsoperateattheclasslevel,cannotaccessnon-staticmembers,

ReentrantLock provides more flexible thread control in Java than synchronized. 1. It supports non-blocking acquisition locks (tryLock()), lock acquisition with timeout (tryLock(longtimeout, TimeUnitunit)) and interruptible wait locks; 2. Allows fair locks to avoid thread hunger; 3. Supports multiple condition variables to achieve a more refined wait/notification mechanism; 4. Need to manually release the lock, unlock() must be called in finally blocks to avoid resource leakage; 5. It is suitable for scenarios that require advanced synchronization control, such as custom synchronization tools or complex concurrent structures, but synchro is still recommended for simple mutual exclusion requirements.
