Wissenspunkte von Spring's Interview wurden häufig gefragt

Das Spirng-Framework ist sehr wichtig, es ist eine Grundlage für das Erlernen anderer Frameworks. Spring verfügt über viele wichtige Wissenspunkte wie IOC, DI, AOP usw. Spring-bezogenes Wissen ist auch ein Modul, das häufig von Interviewern gefragt wird Um einige der zugrunde liegenden Implementierungsprinzipien von Spring zu verstehen, fasst das Folgende einige der Fragen zusammen, die Spring häufig in Interviews gestellt wird:

1. Der Bereich von Spring Bean
①singleton: Singleton-Bereich Standardmäßig wird der Singleton-Modus zum Erstellen von Beans
verwendet. Prototyp: Prototyp-Bereich. Der Prototyp-Modus wird zum Erstellen von Beans verwendet.
Anforderung: Dieselbe HTTP-Anforderung teilt ein Bean-Objekt und verschiedene Anforderungen besitzen Unterschiedliche Bean-Objekte -
Sitzung: Dieselbe HTTP-Sitzung teilt sich ein Bean-Objekt, und verschiedene Sitzungen haben unterschiedliche Bean-Objekte.
Anwendung: Der globale Webbereich, ähnlich der Anwendung in Servlet

2.
Registrierungsmethode für Spring Bean registration Registrierungsmethode für
XML- Konfigurationsdateien registration Registrierungsmethode für Java-Annotationen (Annotation @Component und Annotation
@Bean ) registration Registrierungsmethode für Java-API

3. Das Problem von Beans
mit demselben Namen: Die ID und der Name der Beans in derselben Spring-Konfigurationsdatei können nicht wiederholt werden. Andernfalls wird beim Starten des Spring-Containers ein Fehler gemeldet. Wenn Spring jedoch mehrere Konfigurationsdateien lädt, kann das Problem von Beans mit demselben Namen auftreten. Bean mit demselben Namen bezieht sich auf mehrere Beans mit demselben Namen oder derselben ID. Die Verarbeitungsregel von Spring für Bohnen mit demselben Namen lautet, dass die letzte Bohne verwendet wird, um die vorherige Bohne abzudecken. Wenn wir also die Bohne definieren, versuchen wir, langwierige, sich nicht wiederholende Definitionen zu verwenden, um das Problem von Bohnen mit demselben Namen zu vermeiden. Es ist nicht erforderlich, die ID oder das Namensattribut der Bean anzugeben. Wenn Sie diese leer lassen, generiert der Container automatisch einen eindeutigen Namen für die Bean, sodass kein Problem mit der Bean mit demselben Namen auftritt.

4. Spring IOC
IOC-Inversion of Control oder Inversion of Control ist keine Technologie, sondern eine Designidee. Mit IOC können Programmierer nicht darauf achten, wie Objekte erstellt werden, sondern sich auf Operationen nach der Objekterstellung konzentrieren und die Erstellung, Initialisierung und Zerstörung von Objekten an den Federcontainer delegieren.

5. Spring IOC drei Möglichkeiten zum Erstellen von Objekten: Verwenden der
Standardkonstruktionsmethode. Verwenden der
statischen Factory-Methode. Verwenden der
Instanz-Factory-Methode

Weitere Informationen finden Sie im Artikel: https://www.cnblogs.com/ysocean/p/7466217.html#_label2

6. Wenn die DI-Abhängigkeitsinjektion
ein Objekt erstellt, kann dies von anderen Objekten abhängen, dh davon, wie den Attributen der Klasse Werte zugewiesen werden, und die Wissenspunkte von DI werden verwendet. In einfachen Worten besteht die Abhängigkeitsinjektion darin, Attributen Werte zuzuweisen (einschließlich grundlegender Datentypen und Referenzen). Datentyp), Abhängigkeit Einspritzung durch die Bodenreflexion erreicht

Zwei Arten der Abhängigkeitsinjektion:

  • Konstruktorinjektion verwenden
  • Verwenden Sie die Setter-Methode zum Injizieren

Weitere Informationen finden Sie im Artikel: https://www.cnblogs.com/ysocean/p/7471451.html

7. Zeitpunkt der Erstellung von Objekten im
Spring-Container Standardmäßig wird beim Starten des Spring-Containers das Objekt erstellt (lesen Sie die Spring-Konfigurationsdatei und erstellen Sie es, wenn es auf eine Bean
trifft ). ②Sie können eine Eigenschaft lazy-init = „true“ für die Bean konfigurieren Nach dem Konfigurieren dieser Eigenschaft erstellt Spring das Objekt in context.getBean

Die beiden Zeitpunkte für die Erstellung von Objekten haben Vor- und Nachteile:

  • Im ersten Fall können Sie beim Starten des Federbehälters die Richtigkeit der Konfigurationsdatei für den Federbehälter überprüfen. Wenn der Federbehälter in Kombination mit Tomcat nicht normal gestartet werden kann, kann der gesamte Tomcat nicht normal gestartet werden. Dies hat jedoch den Nachteil, dass einige Beans vorzeitig im Speicher abgelegt werden. Wenn Daten vorhanden sind, wird Speicher belegt.
  • Im zweiten Fall kann der Speicherverbrauch reduziert werden, es ist jedoch nicht einfach, Fehler zu finden

8. Der Lebenszyklus von Spring Bean ① Bean-
Instanziierung: Aus dem Vorstehenden geht hervor, dass die Erstellungszeit des Bean-Objekts möglicherweise beim Starten des Spring-Containers oder beim Aufrufen der getBean-Methode liegt. Wenn das Bean-Objekt erstellt wird, wird die Instanziierung der Bean ausgelöst Tatsächlich kann es auch als neues Objekt verstanden werden, das die Konstruktionsmethode der Klasse ausführt. Da der Bereich der Bean der Standard-Singleton-Singleton-Bereich sein kann, wird die Bean nur ausgelöst, wenn die getBean-Methode zum ersten Mal aufgerufen wird Nach der Instanziierung von
Bean besteht der nächste Schritt darin, das vorhandene Bean-Objekt direkt zurückzugeben: ②Rufen Sie die Bean-Initialisierungsmethode initializeBean () auf.
③Nach Abschluss der Initialisierung kann das Bean-Objekt normal verwendet und die Methode des Bean-Objekts selbst aufgerufen werden.
④Die Zerstörung des Bean-Objekts : Wenn der Spring-Container geschlossen wird, wird die Bean-Objektzerstörungsmethode ausgeführt, aber der Spring-Container ruft die Zerstörungsmethode nicht automatisch auf, sondern muss aktiv aufgerufen werden.

Hinweis: In Spring gibt es zwei Arten von Containern: den BeanFactory-Container und den ApplicationContext-Container. Die von den beiden Containern aufgerufenen Methoden zum Zerstören der Bean sind unterschiedlich

9. Spring AOP
AOP (Aspect Oriented Programming), normalerweise als aspektorientierte Programmierung bezeichnet. Die Realisierung von AOP basiert auf einer dynamischen Proxy- Implementierung. Es extrahiert allgemeine Codemodule, wenn Sie diesen gemeinsamen Code zur Verbesserung der Geschäftslogik verwenden müssen Verwenden Sie eine "Querschnittstechnologie", um den ursprünglichen Code zu verbessern und nicht an den ursprünglichen Code anzupassen. Der Vorteil von Spring AOP besteht darin, dass sich wiederholender Code reduziert, die Entwicklungseffizienz verbessert und es Geschäftsmodulen ermöglicht wird, sich auf geschäftsbezogenen Code zu konzentrieren. Kupplung reduzieren

Weitere Informationen finden Sie im Artikel: https://www.cnblogs.com/ysocean/p/7476379.html

Ergänzung: Die drei Kernkomponenten von Spring: Core, Context, Bean

Ich denke du magst

Origin blog.csdn.net/can_chen/article/details/107850507
Empfohlen
Rangfolge