In meinem vorherigen Beitrag “Einführung in Spring Boot” haben wir die Grundlagen von Spring Boot besprochen. Jetzt werden wir über die Hauptkomponenten von Spring Boot und wie es unter der Haube funktioniert diskutieren.
Wichtige Komponenten des Spring Boot Frameworks
Das Spring Boot Framework besteht hauptsächlich aus vier Hauptkomponenten.
- Spring Boot Starters
- Spring Boot AutoConfigurator
- Spring Boot CLI
- Spring Boot Actuator
HINWEIS: Zusätzlich zu diesen vier Hauptkomponenten gibt es zwei weitere Spring Boot-Komponenten:
- Spring Initializr
- Spring Boot IDEs
Um neue Spring Boot-Projekte schnell zu starten, können wir die Web-Benutzeroberfläche „Spring Initializr“ verwenden. Spring Initializr-URL: https://start.spring.io. Es gibt viele Spring Boot-IDEs wie Eclipse IDE, IntelliJ IDEA, Spring STS Suite usw. Wir werden diese beiden Komponenten in den kommenden Beiträgen besprechen. Nun werden wir diese vier Spring Boot-Komponenten nacheinander im Detail besprechen.
Spring Boot Starter
Spring Boot Starter ist eine der wichtigsten Funktionen oder Komponenten des Spring Boot Frameworks. Die Hauptverantwortung des Spring Boot Starter besteht darin, eine Gruppe gemeinsamer oder verwandter Abhängigkeiten in einzelne Abhängigkeiten zu kombinieren. Wir werden diese Aussage anhand eines Beispiels im Detail erkunden. Wenn wir beispielsweise eine Spring-Webanwendung mit dem Tomcat-Webserver entwickeln möchten, müssen wir die folgenden minimalen JAR-Abhängigkeiten in Ihrer Maven-POM.xml-Datei oder Ihrer Gradle-Build.gradle-Datei hinzufügen
- Spring Core Jar-Datei (spring-core-xx.jar)
- Spring Web Jar-Datei (spring-web-xx.jar)
- Spring Web MVC Jar-Datei (spring-webmvc-xx.jar)
- Servlet-Jar-Datei (servlet-xx.jar)
Wenn wir einige Datenbankfunktionen hinzufügen möchten, müssen wir datenbankbezogene JARs wie die Spring JDBC-Jar-Datei, die Spring ORM-Jar-Dateien, die Spring Transaction-Jar-Datei usw. hinzufügen
- Spring JDBC Jar-Datei (spring-jdbc-xx.jar)
- Spring ORM Jar-Datei (spring-orm-xx.jar)
- Spring Transaction Jar-Datei (spring-transaction-xx.jar)
Wir müssen viele Abhängigkeiten in unseren Build-Dateien definieren. Das ist für Entwickler eine mühsame und umständliche Aufgabe. Außerdem erhöht es die Größe der Build-Dateien. Die Lösung, um diese Vielzahl von Abhängigkeiten zu vermeiden, ist das Spring Boot Starter-Modul. Das Spring Boot Starter-Modul kombiniert alle zugehörigen JAR-Dateien zu einer einzigen JAR-Datei, sodass wir nur eine JAR-Datei-Abhängigkeit zu unseren Build-Dateien hinzufügen müssen. Anstatt die oben genannten 4 JAR-Dateien zu unserer Build-Datei hinzuzufügen, müssen wir nur eine einzige JAR-Datei hinzufügen: die „spring-boot-starter-web“ JAR-Datei. Wenn wir die Abhängigkeit zur „spring-boot-starter-web“ JAR-Datei zu unserer Build-Datei hinzufügen, lädt das Spring Boot Framework automatisch alle erforderlichen JARs herunter und fügt sie dem Klassenpfad unseres Projekts hinzu. Auf die gleiche Weise lädt die „spring-boot-starter-logging“ JAR-Datei alle ihre Abhängigkeits-JARs wie „jcl-over-slf4j, jul-to-slf4j, log4j-over-slf4j, logback-classic“ in den Klassenpfad unseres Projekts. Auf diese Weise reduziert der Spring Boot Starter die Definition vieler Abhängigkeiten und vereinfacht die Projekt-Build-Abhängigkeiten.
Die Hauptvorteile des Spring Boot Starters
- Spring Boot Starter reduziert die Definition vieler Abhängigkeiten und vereinfacht die Projekt-Build-Abhängigkeiten.
- Spring Boot Starter vereinfacht die Projekt-Build-Abhängigkeiten.
Das ist alles zum Spring Boot Starter-Modul. In den kommenden Beiträgen werden wir einige weitere Details und Beispiele für Spring Boot besprechen.
Spring Boot AutoKonfigurator
Ein weiterer wichtiger Bestandteil des Spring Boot Frameworks ist der Spring Boot AutoConfigurator. Die Meinung vieler Kritiker der Spring IO Platform (Spring Framework) lautet: „Die Entwicklung einer auf Spring basierenden Anwendung erfordert viel Konfiguration (entweder XML-Konfiguration oder Annotation-Konfiguration)“. Wie löst man dieses Problem? Die Lösung für dieses Problem ist der Spring Boot AutoConfigurator. Die Hauptaufgabe des Spring Boot AutoConfigurators besteht darin, die Spring-Konfiguration zu reduzieren. Wenn wir Spring-Anwendungen in Spring Boot entwickeln, müssen wir keine einzige XML-Konfiguration definieren und fast keine oder minimale Annotation-Konfiguration verwenden. Die Spring Boot AutoConfigurator-Komponente kümmert sich um die Bereitstellung dieser Informationen. Wenn wir beispielsweise eine Spring MVC-Anwendung mit der Spring IO Platform deklarieren möchten, müssen wir viele XML-Konfigurationen wie Ansichten, View-Resolver usw. definieren. Wenn wir jedoch das Spring Boot Framework verwenden, müssen wir diese XML-Konfigurationen nicht definieren. Der Spring Boot AutoConfigurator übernimmt dies. Wenn wir die Jar-Datei „spring-boot-starter-web“ in unserer Projektbuild-Datei verwenden, löst der Spring Boot AutoConfigurator Ansichten, View-Resolver usw. automatisch auf. Und auch Spring Boot reduziert die Definition von Annotationskonfigurationen. Wenn wir die Annotation @SpringBootApplication auf Klassenebene verwenden, fügt der Spring Boot AutoConfigurator automatisch alle erforderlichen Annotationen dem Java-Klassen-Bytecode hinzu. Wenn wir die Spring Boot-Dokumentation durchgehen, finden wir die folgende Definition für @SpringBootApplication.
@Target(value=TYPE)
@Retention(value=RUNTIME)
@Documented
@Inherited
@Configuration
@EnableAutoConfiguration
@ComponentScan
public @interface SpringBootApplication
Das bedeutet, dass `@SpringBootApplication = @Configuration + @ComponentScan + @EnableAutoConfiration` ist. Das ist alles über das Spring Boot AutoConfigurate-Komponente. Wir werden einige weitere Details mit einigen Beispielen von Spring Boot in kommenden Beiträgen diskutieren. HINWEIS:-
- In einfachen Worten reduziert Spring Boot Starter die Abhängigkeiten des Builds und Spring Boot AutoConfigurator reduziert die Spring-Konfiguration.
- Wie wir besprochen haben, hat Spring Boot Starter eine Abhängigkeit von Spring Boot AutoConfigurator, Spring Boot Starter löst Spring Boot AutoConfigurator automatisch aus.
Spring Boot CLI
Spring Boot CLI (Command Line Interface) ist eine Spring Boot-Software zum Ausführen und Testen von Spring Boot-Anwendungen über die Befehlszeile. Wenn wir Spring Boot-Anwendungen mit CLI ausführen, verwendet es intern Spring Boot Starter und Spring Boot AutoConfigurate-Komponenten, um alle Abhängigkeiten aufzulösen und die Anwendung auszuführen. Wir können sogar Spring Webanwendungen mit einfachen Spring Boot CLI-Befehlen ausführen. Spring Boot CLI hat ein neues „spring“ -Befehl eingeführt, um Groovy-Skripte von der Befehlszeile auszuführen. Beispiel für den spring-Befehl:
spring run HelloWorld.groovy
Hier ist eine Groovy-Skriptdatei mit dem Namen HelloWorld.groovy. Ähnlich wie Java-Quelldatein die Erweiterung *.java haben, haben Groovy-Skriptdateien die Erweiterung *.groovy. Der Befehl „spring“ führt HelloWorld.groovy aus und erzeugt eine Ausgabe. Das Spring Boot CLI-Komponent erfordert viele Schritte wie die Installation der CLI, die Einrichtung der CLI, die Entwicklung einer einfachen Spring Boot-Anwendung und deren Test. Daher werden wir einen weiteren Beitrag widmen, um dies im Detail mit einigen Beispielen für Spring Boot zu besprechen. Bitte beachten Sie meinen nächsten Beitrag zum Spring Boot CLI.
Spring Boot Actuator
Die Komponenten von Spring Boot Actuator bieten viele Funktionen, aber zwei Hauptfunktionen sind
- Bereitstellung von Verwaltungsendpunkten für Spring Boot-Anwendungen.
- Metriken für Spring Boot-Anwendungen.
Wenn wir unsere Spring Boot-Webanwendung mit CLI ausführen, stellt Spring Boot Actuator automatisch den Hostnamen als „localhost“ und die Standardportnummer als „8080“ bereit. Wir können auf diese Anwendung über den Endpunkt „https://localhost:8080/“ zugreifen. Tatsächlich verwenden wir HTTP-Anforderungsmethoden wie GET und POST, um Verwaltungsendpunkte mit Spring Boot Actuator zu repräsentieren. Wir werden in kommenden Beiträgen einige weitere Details zu Spring Boot Actuator besprechen.
Interne Details des Spring Boot-Frameworks
Es wird immer empfohlen, zu verstehen, wie das Spring Boot Framework Abhängigkeiten beim Build reduziert, die Spring-Konfiguration usw. Wenn Sie mit der Programmiersprache Groovy vertraut sind, wissen Sie bereits das meiste. In Groovy müssen wir einige Imports nicht hinzufügen und keine Abhängigkeiten zum Groovy-Projekt hinzufügen. Wenn wir Groovy-Skripte mit dem Groovy-Compiler (groovyc) kompilieren, fügt er automatisch alle Standardimport-Anweisungen hinzu und kompiliert sie dann. Gleichzeitig enthält die Programmiersprache Groovy einen JAR-Abhängigkeitsresolver, um alle erforderlichen JAR-Dateien zum Groovy-Projektklassenpfad hinzuzufügen und aufzulösen. Das Spring Boot Framework verwendet intern Groovy, um standardmäßige Importanweisungen, die Hauptmethode der Anwendung usw. hinzuzufügen. Wenn wir Groovy-Skripte über die Befehlszeile ausführen, wird diese Hauptmethode verwendet, um die Spring Boot-Anwendung zu starten.
Grape
Grape ist ein eingebetteter Abhängigkeitsauflösungsmotor. Grape ist ein JAR-Abhängigkeitsmanager, der in Groovy eingebettet ist. Mit Grape können wir schnell Maven-Repository-Abhängigkeiten zu unserem Projekt-Dateipfad hinzufügen, um die Definitionen der Build-Datei zu reduzieren. Das Programmiermodell des Spring Boot Frameworks ist hauptsächlich vom Groovy-Programmiermodell inspiriert. Das Spring Boot Framework hängt intern von diesen beiden Hauptkomponenten ab: Groovy und Grape. Weitere Details finden Sie in der Grape-Dokumentation https://docs.groovy-lang.org/latest/html/documentation/grape.html. Das sind die Spring-Komponenten und Interna. In kommenden Beiträgen werden wir diese Komponenten mit einigen Spring Boot-Beispielen ausführlich diskutieren. Wenn Sie Fragen haben, hinterlassen Sie bitte einen Kommentar.