Dans mon précédent post « Introduction à Spring Boot », nous avons discuté des bases de Spring Boot. Maintenant, nous allons discuter des « principaux composants de Spring Boot » et de « comment fonctionne Spring Boot en interne ».
Principaux composants du framework Spring Boot
Le framework Spring Boot comprend principalement quatre composants majeurs.
- Starters Spring Boot
- AutoConfigurateur Spring Boot
- CLI Spring Boot
- Actuateur Spring Boot
REMARQUE : En plus de ces quatre composants majeurs, il existe deux autres composants Spring Boot :
- Initialiseur Spring
- IDE Spring Boot
Pour démarrer rapidement de nouveaux projets Spring Boot, nous pouvons utiliser l’interface web « Spring Initializr ». URL de Spring Initializr : https://start.spring.io. Nous avons de nombreux IDE Spring Boot tels que Eclipse IDE, IntelliJ IDEA, Spring STS Suite, etc. Nous discuterons de ces deux composants dans les prochains articles. Nous discuterons maintenant en détail de ces quatre composants de Spring Boot.
Démarrage rapide Spring Boot
Les starters Spring Boot sont l’une des principales fonctionnalités ou composants clés du framework Spring Boot. La principale responsabilité du démarrage rapide Spring Boot est de regrouper un ensemble de dépendances communes ou liées en une seule dépendance. Nous explorerons cette déclaration en détail avec un exemple. Par exemple, si nous voulons développer une application Web Spring avec le serveur Web Tomcat, nous devons ajouter les dépendances minimales suivantes dans le fichier pom.xml de votre Maven ou dans le fichier build.gradle de Gradle
- Fichier JAR principal de Spring (spring-core-xx.jar)
- Fichier JAR Web Spring (spring-web-xx.jar)
- Fichier JAR Spring Web MVC (spring-webmvc-xx.jar)
- Fichier JAR Servlet (servlet-xx.jar)
Si nous voulons ajouter des fonctionnalités de base de données, nous devons ajouter des fichiers JAR liés à la base de données comme le fichier JAR Spring JDBC, les fichiers JAR Spring ORM, le fichier JAR Spring Transaction, etc
- Fichier JAR Spring JDBC (spring-jdbc-xx.jar)
- Fichier JAR Spring ORM (spring-orm-xx.jar)
- Fichier JAR Spring Transaction (spring-transaction-xx.jar)
Nous devons définir beaucoup de dépendances dans nos fichiers de compilation. C’est une tâche fastidieuse et laborieuse pour un développeur. De plus, cela augmente la taille de nos fichiers de compilation. Quelle est la solution pour éviter de définir autant de dépendances dans nos fichiers de compilation ? La solution est le composant Spring Boot Starter. Le composant Spring Boot Starter regroupe tous les fichiers jar associés en un seul fichier jar, de sorte que nous ne devons ajouter qu’une seule dépendance de fichier jar à nos fichiers de compilation. Au lieu d’ajouter les 4 fichiers jar mentionnés ci-dessus à notre fichier de compilation, nous devons ajouter un seul fichier jar : le fichier jar « spring-boot-starter-web ». Lorsque nous ajoutons la dépendance au fichier jar « spring-boot-starter-web » à notre fichier de compilation, le framework Spring Boot téléchargera automatiquement tous les fichiers jar requis et les ajoutera au chemin de classe de notre projet. De la même manière, le fichier jar « spring-boot-starter-logging » charge toutes ses dépendances, telles que « jcl-over-slf4j, jul-to-slf4j, log4j-over-slf4j, logback-classic », dans le chemin de classe de notre projet.
Principaux avantages de Spring Boot Starter
- Spring Boot Starter réduit la définition de nombreuses dépendances et simplifie les dépendances de construction du projet.
- Spring Boot Starter simplifie les dépendances de construction du projet.
Voilà tout ce qu’il y a à savoir sur le composant Spring Boot Starter. Nous discuterons de plus de détails avec quelques exemples Spring Boot dans les prochains articles.
AutoConfigurateur Spring Boot
Un autre composant clé important du framework Spring Boot est Spring Boot AutoConfigurator. La plupart des critiques de la plateforme Spring IO (Spring Framework) estiment que « développer une application basée sur Spring nécessite beaucoup de configuration (soit une configuration XML, soit une configuration par annotation). Alors comment résoudre ce problème ? La solution à ce problème est Spring Boot AutoConfigurator. La principale responsabilité de Spring Boot AutoConfigurator est de réduire la configuration de Spring. Si nous développons des applications Spring avec Spring Boot, nous n’avons pas besoin de définir une seule configuration XML et presque aucune configuration par annotation, voire aucune. Le composant Spring Boot AutoConfigurator se chargera de fournir ces informations. Par exemple, si nous voulons déclarer une application Spring MVC en utilisant la plateforme Spring IO, alors nous devons définir beaucoup de configurations XML comme les vues, les résolveurs de vues, etc. Mais si nous utilisons le framework Spring Boot, alors nous n’avons pas besoin de définir ces configurations XML. Spring Boot AutoConfigurator s’en chargera. Si nous utilisons le fichier JAR « spring-boot-starter-web » dans le fichier de construction de notre projet, alors Spring Boot AutoConfigurator résoudra automatiquement les vues, les résolveurs de vues, etc. De plus, Spring Boot réduit la définition de la configuration par annotation. Si nous utilisons l’annotation @SpringBootApplication au niveau de la classe, alors Spring Boot AutoConfigurator ajoutera automatiquement toutes les annotations requises au bytecode de la classe Java. Si nous consultons la documentation de Spring Boot, nous pouvons trouver la définition suivante pour @SpringBootApplication.
@Target(value=TYPE)
@Retention(value=RUNTIME)
@Documented
@Inherited
@Configuration
@EnableAutoConfiguration
@ComponentScan
public @interface SpringBootApplication
Voilà, @SpringBootApplication = @Configuration + @ComponentScan + @EnableAutoConfiration. C’est tout concernant le composant d’auto-configuration de Spring Boot. Nous discuterons de plus de détails avec quelques exemples de Spring Boot dans les prochains articles. NOTE:-
- En termes simples, Spring Boot Starter réduit les dépendances de la construction et Spring Boot AutoConfigurator réduit la configuration Spring.
- Comme discuté précédemment, Spring Boot Starter a une dépendance sur Spring Boot AutoConfigurator, et Spring Boot Starter déclenche automatiquement Spring Boot AutoConfigurator.
Spring Boot CLI
Spring Boot CLI (Interface en Ligne de Commande) est un logiciel Spring Boot pour exécuter et tester des applications Spring Boot depuis l’invite de commande. Lorsque nous exécutons des applications Spring Boot en utilisant CLI, il utilise internement les composants Spring Boot Starter et Spring Boot AutoConfigurator pour résoudre toutes les dépendances et exécuter l’application. Nous pouvons même exécuter des applications Web Spring avec des commandes simples de Spring Boot CLI. Spring Boot CLI a introduit une nouvelle commande « spring » pour exécuter des scripts Groovy depuis l’invite de commande. Exemple de commande spring:
spring run HelloWorld.groovy
Voici HelloWorld.groovy, un fichier de script Groovy. Tout comme les fichiers source Java ont l’extension *.java, les fichiers de script Groovy ont l’extension *.groovy. La commande « spring » exécute HelloWorld.groovy et produit une sortie. Le composant Spring Boot CLI nécessite plusieurs étapes telles que l’installation du CLI, la configuration du CLI, le développement d’une application Spring Boot simple et son test. Nous consacrerons donc un autre article à ce sujet, en détaillant quelques exemples de Spring Boot. Veuillez vous référer à mon prochain article sur Spring Boot CLI.
Spring Boot Actuator
Les composants Spring Boot Actuator offrent de nombreuses fonctionnalités, mais deux fonctionnalités majeures sont
- La fourniture de points de terminaison de gestion aux applications Spring Boot.
- Les métriques des applications Spring Boot.
Lorsque nous exécutons notre application Web Spring Boot à l’aide de CLI, Spring Boot Actuator fournit automatiquement le nom d’hôte « localhost » et le numéro de port par défaut « 8080 ». Nous pouvons accéder à cette application en utilisant le point de terminaison « https://localhost:8080/« . Nous utilisons en réalité les méthodes de requête HTTP telles que GET et POST pour représenter les points de terminaison de gestion à l’aide de Spring Boot Actuator. Nous discuterons de plus de détails sur Spring Boot Actuator dans les prochains articles.
Les internes du framework Spring Boot
Il est toujours recommandé de comprendre comment le framework Spring Boot réduit les dépendances de construction, la configuration de Spring, etc. Comment Spring Boot fonctionne sous le capot. Si vous êtes familier avec le langage de programmation Groovy, alors vous connaissez la plupart des choses. En Groovy, nous n’avons pas besoin d’ajouter des imports et nous n’avons pas besoin d’ajouter des dépendances à un projet Groovy. Lorsque nous compilons des scripts Groovy en utilisant le compilateur Groovy (groovyc), il ajoute automatiquement toutes les déclarations d’importation par défaut, puis le compile. De la même manière, le langage de programmation Groovy contient un résolveur de dépendances JAR pour résoudre et ajouter tous les fichiers JAR nécessaires au classpath du projet Groovy. Le framework Spring Boot utilise internement Groovy pour ajouter certains éléments par défaut tels que les déclarations d’importation par défaut, la méthode main() de l’application, etc. Lorsque nous exécutons des scripts Groovy à partir de l’invite de commande CLI, cela utilise cette méthode main() pour exécuter l’application Spring Boot.
Grape
Grape est un moteur de résolution de dépendances intégré. Grape est un gestionnaire de dépendances JAR intégré à Groovy. Grape nous permet d’ajouter rapidement des dépendances de dépôt Maven à notre chemin de classe de projet pour réduire les définitions de fichiers de construction. Le modèle de programmation du framework Spring Boot est principalement inspiré par le modèle de programmation Groovy. Le framework Spring Boot dépend internement de ces deux composants majeurs : Groovy et Grape. Vous pouvez consulter la documentation de Grape à l’adresse suivante pour plus de détails : https://docs.groovy-lang.org/latest/html/documentation/grape.html. C’est tout ce qu’il y a à savoir sur les composants et les internes de Spring. Nous discuterons de ces composants en détail avec quelques exemples Spring Boot dans les prochains articles. Si vous avez des questions, n’hésitez pas à me laisser un commentaire.