Heim >Java >javaLernprogramm >Was ist der Grund, warum SpringBoot langsam startet?
Die Architektur von Spring Boot ist so verbreitet, dass man sie manchmal nicht beherrschen kann Es ist Ihnen peinlich zu sagen, dass Sie in Java arbeiten. Aber Feuer kehrt zum Feuer zurück, und es gibt einige kleine Probleme, auf die wir achten müssen.
Wenn es sich um ein einzelnes Projekt handelt und es keine Anforderungen an die Startgeschwindigkeit gibt, dann ignorieren Sie es bitte.
Geben wir das folgende Thema ein: Unter welchen Umständen wird der Start des Spring-Boot-Projekts langsamer? Projekt kann nicht sein Zurückhalten, sonst sagen Sie, dass das Projekt langsam startet und das Projekt immer noch denkt, dass die Maschine nicht gut ist...
Eins dauert 0,1 Sekunden, 10 dauert 1 Sekunde, 100 dauert 10 Sekunden ... und so weiter. Das ist am einfachsten zu verstehen.
Grund 2
Automatische Konfiguration des Federstiefels. Obwohl die automatische Konfiguration ein Highlight von Spring Boot ist, ist sie auch ein Nachteil, der zu langsamen Startzeiten führt.
Wie oben erwähnt, gibt es viele nutzlose Konfigurationen. Was ich hier sagen möchte, ist, dass Spring Boot zu viele Dinge selbst zusammenbaut.
Sie können sehen, dass die spring.factories-Dateien in den entsprechenden JAR-Paketen von Spring Boot gespeichert sind. Wenn Sie hineinschauen, können Sie sehen, dass die meisten von ihnen viele Klassen geschrieben haben, die verwendet werden Spring Boot automatisch zu implementieren. Eine der Kernkomponenten der Montage.
Aber was können Sie tun? Ob Sie es nutzen oder nicht, es wird es zumindest für Sie überprüfen.
Grund 3
Das Projekt ist nicht rational genug. Das Konzept der Microservices erfreut sich meiner Meinung nach mittlerweile großer Beliebtheit und Einfachheit. Die meisten Stellen, an denen die Startgeschwindigkeit im Vordergrund steht, liegen hauptsächlich in Microservice-Projekten.
Bei einem Microservice-Projekt ist es am besten, es innerhalb von 10 Sekunden zu starten. Aber die meisten können es nicht, weil die Projekte nicht ausreichend detailliert sind.
Ob eine Schnittstelle schneller zu starten ist oder 10 oder mehr, die Antwort liegt auf der Hand. Viele Projekte sind groß und umfassend, was bedeutet, dass es viele Funktionen, vollständige Konfigurationen, verschiedene erweiterbare Konfigurationen usw. gibt. Es ist möglicherweise nicht umfassend, aber was bedeutet das, dass Sie viele Konfigurationen haben? Es ist egal, ob sie nützlich sind oder nicht. Zumindest müssen noch viel mehr Klassendateien kompiliert und geladen werden. Sie sagten, Sie möchten, dass ein solches Projekt schnell startet.
Lösung
Überprüfen Sie, ob in Maven zu viele nutzlose Abhängigkeiten vorhanden sind
#🎜🎜 #Es ist komplizierter. Verwenden Sie das Spring-Boot-Maven-Plug-In, um den Start zu debuggen. Geben Sie dann direkt in der Startup-Klasse an, dass nur die verwendeten Klassen gestartet werden Löschen Sie die Annotation @SpringBootApplication, füllen Sie die Annotationen @Configuration und @Import manuell aus und fügen Sie die konfigurierten Klassen in die Annotation @Import ein. Ersetzen Sie einige Abhängigkeiten durch eine schnellere Konfiguration. Beispielsweise verwenden Sie den Datenbankverbindungspool A, der über alle Funktionen und viele Konfigurationen verfügt, aber langsamer ist. Tatsächlich kann der Verbindungspool B jedoch auch die Projektanforderungen erfüllen, verfügt jedoch über relativ wenige Funktionen, sodass weniger Konfigurationen erforderlich sind und er schneller ist Brauchen Sie einen? Wählen Sie einen zwischen A und B.#🎜 🎜#2, Deaktivieren Sie die JMX-Überwachung von Spring Boot, setzen Sie spring.jmx.enabled=false
4 , Starten Sie beim Laden von Bohnen das verzögerte Laden
7. Deaktivieren Sie einige Endpunktüberwachungsfunktionen Swagger scannt die Schnittstelle. Geben Sie nur die Scan-Klasse unter einem bestimmten Pfad an.
10. Das Scannen der Feign-Client-Schnittstelle schränkt den Umfang des Paket-Scannens ein.
Das obige ist der detaillierte Inhalt vonWas ist der Grund, warum SpringBoot langsam startet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!