国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Home Java JavaInterview questions 2020 New Java Interview Questions-Spring

2020 New Java Interview Questions-Spring

Jun 24, 2020 pm 04:49 PM
java spring Interview questions

The purpose of spring to be used is: to solve the complexity of enterprise application development. Spring is a lightweight control inversion and aspect-oriented container framework. Spring can configure and combine simple components into complex applications.

2020 New Java Interview Questions-Spring

(Related recommendations: java interview questions)

1. Why use spring?

1. Introduction

Purpose: Solve the complexity of enterprise application development

Function: Use basic JavaBean instead of EJB, and provide more enterprise applications Function

Scope: Any Java application

Simply put, Spring is a lightweight inversion of control (IoC) and aspect-oriented (AOP) container framework.

2. Lightweight

Spring is lightweight in terms of both size and overhead. The complete Spring framework can be distributed in a JAR file with a size of just over 1MB. And the processing overhead required by Spring is negligible. Furthermore, Spring is non-intrusive: typically, objects in a Spring application do not depend on specific Spring classes.

3. Inversion of Control

Spring promotes loose coupling through a technology called Inversion of Control (IoC). When IoC is applied, other objects that an object depends on are passed in passively, instead of the object itself creating or finding dependent objects. You can think of IoC as the opposite of JNDI - instead of the object looking for dependencies from the container, the container actively passes the dependencies to the object when it is initialized without waiting for the object to request it.

4. Aspect-oriented

Spring provides rich support for aspect-oriented programming, allowing the separation of application business logic and system-level services (such as auditing and transaction management) Conduct cohesive development. Application objects only implement what they are supposed to do - complete business logic - nothing more. They are not responsible for (or even aware of) other system-level concerns, such as logging or transaction support.

5. Container

Spring contains and manages the configuration and life cycle of application objects. In this sense, it is a container. You can configure how each of your beans is created—— Based on a configurable prototype, your bean can create a single instance or generate a new instance every time it is needed - and how they are related to each other. However, Spring should not be confused with traditional heavyweight EJB containers, which are often large, cumbersome, and difficult to use.

6. Framework

Spring can configure and combine simple components into complex applications. In Spring, application objects are composed declaratively, typically in an XML file. Spring also provides many basic functions (transaction management, persistence framework integration, etc.), leaving the development of application logic to you.

All of these Spring features enable you to write code that is cleaner, more manageable, and easier to test. They also provide basic support for various modules in Spring.

2. Explain what is aop?

AOP (Aspect-Oriented Programming, aspect-oriented programming) can be said to be the supplement and improvement of OOP (Object-Oriented Programming, object-oriented programming). OOP introduces concepts such as encapsulation, inheritance, and polymorphism to establish an object hierarchy to simulate a collection of common behaviors.

When we need to introduce public behavior to dispersed objects, OOP is powerless. In other words, OOP allows you to define relationships from top to bottom, but it is not suitable for defining relationships from left to right. For example, the logging function. Logging code tends to be spread horizontally across all object hierarchies, having nothing to do with the core functionality of the objects it's spread to.

The same is true for other types of code, such as security, exception handling, and transparent persistence. This kind of irrelevant code scattered everywhere is called cross-cutting code. In OOP design, it leads to the duplication of a large amount of code and is not conducive to the reuse of various modules.

The AOP technology is just the opposite. It uses a technology called "cross-cutting" to dissect the inside of the encapsulated object and encapsulate the public behaviors that affect multiple classes into a reusable module and name it "Aspect".

The so-called "aspect", simply put, is to encapsulate the logic or responsibilities that have nothing to do with the business but are commonly called by the business modules, so as to reduce the duplication of code in the system and reduce the coupling between modules. and facilitate future operability and maintainability.

AOP represents a horizontal relationship. If the "object" is a hollow cylinder, which encapsulates the properties and behavior of the object; then the aspect-oriented programming method is like a sharp knife. Cut open these hollow cylinders to get the message inside. The cut section is the so-called "aspect". Then it restored these cut sections with incredible skill, leaving no trace.

Using "cross-cutting" technology, AOP divides the software system into two parts: core concerns and cross-cutting concerns. The main process of business processing is the core concern, and the part that has little relationship with it is the cross-cutting concern.

One of the characteristics of cross-cutting concerns is that they often occur in multiple places of the core concern, and they are basically similar everywhere. Such as authority authentication, logging, and transaction processing. The role of Aop is to separate various concerns in the system, separating core concerns and cross-cutting concerns.

As Adam Magee, senior solution architect at Avanade, said, the core idea of ??AOP is to "separate the business logic in the application from the common services that support it."

3. Explain what is ioc?

IOC is the abbreviation of Inversion of Control, and most books translate it as "Inversion of Control".

In 1996, Michael Mattson first proposed the concept of IOC in an article about exploring object-oriented frameworks. We have already talked a lot about the basic ideas of object-oriented design and programming, so we won’t go into details again. Simply put, it means decomposing complex systems into cooperating objects. After these object classes are encapsulated, the internal implementation is transparent to the outside. , thereby reducing the complexity of problem solving, and can be flexibly reused and extended.

The point put forward by the IOC theory is roughly this: using a "third party" to achieve decoupling between objects with dependencies. As shown below:

2020 New Java Interview Questions-Spring

As you can see, due to the introduction of the "third party" in the middle, that is, the IOC container, the four A, B, C, and D The objects no longer have a coupling relationship, and the transmission between gears all relies on the "third party". The control rights of all objects are handed over to the "third party" IOC container.

Therefore, the IOC container has become the key core of the entire system. It plays a role similar to "glue", binding all objects in the system together to function. Without this "glue" Mixture", objects will lose contact with each other, which is why some people liken the IOC container to a "glue".

Let’s do another experiment: remove the IOC container in the middle of the picture above, and then take a look at this system:

2020 New Java Interview Questions-Spring

What we see now The screen is everything we need to complete to implement the entire system. At this time, the four objects A, B, C, and D have no coupling relationship and have no connection with each other.

In this case, when you implement A, you no longer need to consider B, C, and D. The dependencies between objects have been reduced to a minimum. Therefore, if IOC containers can be realized, it will be a wonderful thing for system development. Each member participating in the development only needs to implement his own class and has nothing to do with others!

4. What are the main modules of spring?

The Spring framework has integrated more than 20 modules so far. These modules are mainly divided into core containers, data access/integration, Web, AOP (aspect-oriented programming), tools, messaging and test modules as shown in the figure below.

2020 New Java Interview Questions-Spring

5. What are the commonly used injection methods in spring?

Spring implements IOC (Inversion of Control) through DI (Dependency Injection). There are three main injection methods:

  • Constructor method injection

  • setter injection

  • Annotation-based injection

The above is the detailed content of 2020 New Java Interview Questions-Spring. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

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

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to iterate over a Map in Java? How to iterate over a Map in Java? Jul 13, 2025 am 02:54 AM

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)-&gt

Java Optional example Java Optional example Jul 12, 2025 am 02:55 AM

Optional can clearly express intentions and reduce code noise for null judgments. 1. Optional.ofNullable is a common way to deal with null objects. For example, when taking values ??from maps, orElse can be used to provide default values, so that the logic is clearer and concise; 2. Use chain calls maps to achieve nested values ??to safely avoid NPE, and automatically terminate if any link is null and return the default value; 3. Filter can be used for conditional filtering, and subsequent operations will continue to be performed only if the conditions are met, otherwise it will jump directly to orElse, which is suitable for lightweight business judgment; 4. It is not recommended to overuse Optional, such as basic types or simple logic, which will increase complexity, and some scenarios will directly return to nu.

How to fix java.io.NotSerializableException? How to fix java.io.NotSerializableException? Jul 12, 2025 am 03:07 AM

The core workaround for encountering java.io.NotSerializableException is to ensure that all classes that need to be serialized implement the Serializable interface and check the serialization support of nested objects. 1. Add implementsSerializable to the main class; 2. Ensure that the corresponding classes of custom fields in the class also implement Serializable; 3. Use transient to mark fields that do not need to be serialized; 4. Check the non-serialized types in collections or nested objects; 5. Check which class does not implement the interface; 6. Consider replacement design for classes that cannot be modified, such as saving key data or using serializable intermediate structures; 7. Consider modifying

Comparable vs Comparator in Java Comparable vs Comparator in Java Jul 13, 2025 am 02:31 AM

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

How to parse JSON in Java? How to parse JSON in Java? Jul 11, 2025 am 02:18 AM

There are three common ways to parse JSON in Java: use Jackson, Gson, or org.json. 1. Jackson is suitable for most projects, with good performance and comprehensive functions, and supports conversion and annotation mapping between objects and JSON strings; 2. Gson is more suitable for Android projects or lightweight needs, and is simple to use but slightly inferior in handling complex structures and high-performance scenarios; 3.org.json is suitable for simple tasks or small scripts, and is not recommended for large projects because of its lack of flexibility and type safety. The choice should be decided based on actual needs.

Java method references explained Java method references explained Jul 12, 2025 am 02:59 AM

Method reference is a way to simplify the writing of Lambda expressions in Java, making the code more concise. It is not a new syntax, but a shortcut to Lambda expressions introduced by Java 8, suitable for the context of functional interfaces. The core is to use existing methods directly as implementations of functional interfaces. For example, System.out::println is equivalent to s->System.out.println(s). There are four main forms of method reference: 1. Static method reference (ClassName::staticMethodName); 2. Instance method reference (binding to a specific object, instance::methodName); 3.

How to handle character encoding issues in Java? How to handle character encoding issues in Java? Jul 13, 2025 am 02:46 AM

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

Outlook shortcut for new email Outlook shortcut for new email Jul 11, 2025 am 03:25 AM

How to quickly create new emails in Outlook is as follows: 1. The desktop version uses the shortcut key Ctrl Shift M to directly pop up a new email window; 2. The web version can create new emails in one-click by creating a bookmark containing JavaScript (such as javascript:document.querySelector("divrole='button'").click()); 3. Use browser plug-ins (such as Vimium, CrxMouseGestures) to trigger the "New Mail" button; 4. Windows users can also select "New Mail" by right-clicking the Outlook icon of the taskbar

See all articles