Heim  >  Artikel  >  Java  >  Fragen zum neuen Java-Interview 2020 – Frühling

Fragen zum neuen Java-Interview 2020 – Frühling

王林
王林nach vorne
2020-06-24 16:49:052206Durchsuche

Der Zweck von Spring besteht darin, die Komplexität der Entwicklung von Unternehmensanwendungen zu lösen. Spring ist ein leichtes Kontrollinversions- und aspektorientiertes Container-Framework. Spring kann einfache Komponenten konfigurieren und zu komplexen Anwendungen kombinieren.

Fragen zum neuen Java-Interview 2020 – Frühling

(Verwandte Empfehlungen: Java-Interviewfragen)

1 Warum Frühling verwenden?

1. Einführung

Zweck: Die Komplexität der Entwicklung von Unternehmensanwendungen lösen

Funktion: Einfaches JavaBean anstelle von EJB verwenden und mehr Unternehmensanwendungen bereitstellen Funktion

Geltungsbereich: Jede Java-Anwendung

Einfach ausgedrückt ist Spring ein leichtes Inversion-of-Control- (IoC) und aspektorientiertes (AOP) Container-Framework.

2. Geringes Gewicht

Spring ist sowohl hinsichtlich der Größe als auch des Overheads leicht. Das komplette Spring-Framework kann in einer JAR-Datei mit einer Größe von knapp über 1 MB verteilt werden. Und der von Spring benötigte Verarbeitungsaufwand ist vernachlässigbar. Darüber hinaus ist Spring nicht aufdringlich: Normalerweise sind Objekte in einer Spring-Anwendung nicht von bestimmten Spring-Klassen abhängig.

3. Inversion of Control

Spring fördert die lose Kopplung durch eine Technologie namens Inversion of Control (IoC). Wenn IoC angewendet wird, werden andere Objekte, von denen ein Objekt abhängt, passiv übergeben, anstatt dass das Objekt selbst abhängige Objekte erstellt oder findet. Sie können sich IoC als das Gegenteil von JNDI vorstellen – anstatt dass das Objekt nach Abhängigkeiten vom Container sucht, übergibt der Container die Abhängigkeiten aktiv an das Objekt, wenn es initialisiert wird, ohne darauf zu warten, dass das Objekt sie anfordert.

4. Aspektorientiert

Spring bietet umfassende Unterstützung für aspektorientierte Programmierung und ermöglicht die Trennung von Anwendungsgeschäftslogik und Diensten auf Systemebene (z. B. Prüfung und Transaktionsmanagement). Führen Sie eine zusammenhängende Entwicklung durch . Anwendungsobjekte implementieren nur das, was sie tun sollen – die vollständige Geschäftslogik – nichts weiter. Sie sind nicht für andere Belange auf Systemebene verantwortlich (oder sind sich dieser auch nicht bewusst), wie z. B. Protokollierung oder Transaktionsunterstützung.

5. Container

Spring enthält und verwaltet die Konfiguration und den Lebenszyklus von Anwendungsobjekten. In diesem Sinne können Sie konfigurieren, wie jede Ihrer Beans erstellt wird Auf einem konfigurierbaren Prototyp kann Ihr Bean bei Bedarf eine einzelne Instanz erstellen oder eine neue Instanz generieren – und wie sie miteinander in Beziehung stehen. Allerdings sollte Spring nicht mit herkömmlichen schweren EJB-Containern verwechselt werden, die oft groß, unhandlich und schwer zu verwenden sind.

6. Framework

Spring kann einfache Komponenten konfigurieren und zu komplexen Anwendungen kombinieren. In Spring werden Anwendungsobjekte deklarativ zusammengestellt, typischerweise in einer XML-Datei. Spring bietet außerdem viele Grundfunktionen (Transaktionsverwaltung, Persistenz-Framework-Integration usw.) und überlässt Ihnen die Entwicklung der Anwendungslogik.

All diese Spring-Funktionen ermöglichen es Ihnen, Code zu schreiben, der sauberer, verwaltbarer und einfacher zu testen ist. Sie bieten im Frühjahr auch grundlegenden Support für verschiedene Module an.

2. Erklären Sie, was AOP ist?

AOP (Aspektorientierte Programmierung) kann als Ergänzung und Verbesserung von OOP (Objektorientierte Programmierung) bezeichnet werden. OOP führt Konzepte wie Kapselung, Vererbung und Polymorphismus ein, um eine Objekthierarchie einzurichten und eine Sammlung allgemeiner Verhaltensweisen zu simulieren.

Wenn wir öffentliches Verhalten bei verteilten Objekten einführen müssen, ist OOP machtlos. Mit anderen Worten: Mit OOP können Sie Beziehungen von oben nach unten definieren, es ist jedoch nicht für die Definition von Beziehungen von links nach rechts geeignet. Zum Beispiel die Protokollierungsfunktion. Protokollierungscode wird in der Regel horizontal über alle Objekthierarchien verteilt und hat nichts mit der Kernfunktionalität der Objekte zu tun, auf die er verteilt wird.

Dasselbe gilt für andere Arten von Code wie Sicherheit, Ausnahmebehandlung und transparente Persistenz. Diese Art von irrelevantem Code, der überall verstreut ist, wird als übergreifender Code bezeichnet. Im OOP-Design führt er zur Duplizierung einer großen Menge Code und ist der Wiederverwendung verschiedener Module nicht förderlich.

Die AOP-Technologie ist genau das Gegenteil. Sie verwendet eine Technologie namens „Cross-Cutting“, um das Innere des gekapselten Objekts zu zerlegen und die öffentlichen Verhaltensweisen, die sich auf mehrere Klassen auswirken, in einem wiederverwendbaren Modul zu kapseln und es „Aspekt“ zu nennen. .

Der sogenannte „Aspekt“ besteht vereinfacht gesagt darin, die Logik oder Verantwortlichkeiten zu kapseln, die nichts mit dem Geschäft zu tun haben, sondern von den Geschäftsmodulen gemeinsam aufgerufen werden, um so die Duplizierung von Code zu reduzieren das System und reduzieren die Kopplung zwischen Modulen und erleichtern die zukünftige Bedienbarkeit und Wartbarkeit.

AOP stellt eine horizontale Beziehung dar, die die Eigenschaften und das Verhalten des Objekts kapselt um die Botschaft hineinzubringen. Der Schnittabschnitt ist der sogenannte „Aspekt“. Anschließend wurden diese ausgeschnittenen Abschnitte mit unglaublichem Geschick wiederhergestellt, ohne Spuren zu hinterlassen.

Mithilfe der „Querschnitts“-Technologie unterteilt AOP das Softwaresystem in zwei Teile: Kernanliegen und Querschnittsanliegen. Der Hauptprozess der Geschäftsabwicklung ist das Kernanliegen, und der Teil, der wenig damit zu tun hat, ist das Querschnittsthema.

Ein Merkmal von Querschnittsthemen ist, dass sie häufig an mehreren Stellen im Kernanliegen auftreten und grundsätzlich überall ähnlich sind. Zum Beispiel Autoritätsauthentifizierung, Protokollierung und Transaktionsverarbeitung. Die Rolle von Aop besteht darin, verschiedene Anliegen im System zu trennen und Kernanliegen von übergreifenden Anliegen zu trennen.

Wie Adam Magee, leitender Lösungsarchitekt bei Avanade, sagte, besteht die Kernidee von AOP darin, „die Geschäftslogik in der Anwendung von den allgemeinen Diensten zu trennen, die sie unterstützen“.

3. Erklären Sie, was ioc ist?

IOC ist die Abkürzung für Inversion of Control und wird in den meisten Büchern mit „Inversion of Control“ übersetzt.

Im Jahr 1996 schlug Michael Mattson das Konzept des IOC erstmals in einem Artikel über die Erforschung objektorientierter Frameworks vor. Wir haben bereits viel über die Grundideen des objektorientierten Designs und der Programmierung gesprochen, daher werde ich nicht auf Details eingehen. Einfach ausgedrückt bedeutet dies, dass komplexe Systeme in kooperierende Objekte zerlegt werden nach außen transparent, wodurch die Komplexität der Problemlösung reduziert und flexibel wiederverwendet und erweitert werden kann.

Der von der IOC-Theorie dargelegte Punkt ist ungefähr dieser: Verwendung eines „Dritten“, um eine Entkopplung zwischen Objekten mit Abhängigkeiten zu erreichen. Wie unten gezeigt:

Fragen zum neuen Java-Interview 2020 – Frühling Wie Sie sehen können, sind aufgrund der Einführung des „Dritten“ in der Mitte, also des IOC-Containers, die vier A, B , C und D Die Objekte haben keine Kopplungsbeziehung mehr und die Übertragung zwischen den Gängen hängt alle vom „Dritten“ ab. Die Kontrollrechte aller Objekte werden an den IOC-Container „Dritter“ übergeben.

Daher ist der IOC-Container zum Kern des gesamten Systems geworden. Er spielt eine ähnliche Rolle wie ein „Kleber“, der alle Objekte im System zusammenhält, damit sie funktionieren. Gegenstände verlieren den Kontakt zueinander, weshalb manche Menschen den IOC-Behälter mit einem „Kleber“ vergleichen.

Machen wir ein weiteres Experiment: Entfernen Sie den IOC-Container in der Mitte des Bildes oben und schauen Sie sich dann dieses System an:

Fragen zum neuen Java-Interview 2020 – FrühlingWas wir sehen Jetzt ist der Bildschirm alles, was wir zur Implementierung des gesamten Systems benötigen. Zu diesem Zeitpunkt haben die vier Objekte A, B, C und D keine Kopplungsbeziehung und keine Verbindung miteinander.

In diesem Fall müssen Sie bei der Implementierung von A B, C und D nicht mehr berücksichtigen und die Abhängigkeiten zwischen Objekten wurden auf ein Minimum reduziert. Wenn also IOC-Container realisiert werden können, ist dies eine wunderbare Sache für die Systementwicklung. Jedes an der Entwicklung beteiligte Mitglied muss nur seine eigene Klasse implementieren und hat nichts mit anderen zu tun!

4. Was sind die Hauptmodule des Frühlings?

Das Spring-Framework hat bisher mehr als 20 Module integriert. Diese Module sind hauptsächlich in Kerncontainer, Datenzugriff/-integration, Web, AOP (aspektorientierte Programmierung), Tools, Messaging und Testmodule unterteilt, wie in der folgenden Abbildung dargestellt.

Fragen zum neuen Java-Interview 2020 – Frühling

5. Welche Injektionsmethoden werden im Frühling häufig verwendet?

Spring implementiert IOC (Inversion of Control) durch DI (Dependency Injection). Es gibt drei Hauptinjektionsmethoden:

    Konstruktormethodeninjektion
  • Setter-Injektion
  • Annotationsbasierte Injektion

Das obige ist der detaillierte Inhalt vonFragen zum neuen Java-Interview 2020 – Frühling. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen