Maison > Java > javaDidacticiel > Analyse du code source de la gestion des dépendances SpringBoot

Analyse du code source de la gestion des dépendances SpringBoot

WBOY
Libérer: 2023-05-22 13:49:14
avant
1069 Les gens l'ont consulté

1. Gestion des dépendances

Ⅰ Pourquoi n'avez-vous pas besoin de spécifier la version lors de l'importation de certaines dépendances ?

Analyse du code source de la gestion des dépendances SpringBoot

Les dépendances que nous avons ajoutées lors de la création du projet ne nous ont pas aidés à spécifier le numéro de versionAlors, comment SpringBoot spécifie-t-il le compte de version ?

Maintenant, décollons le lanceur de dépendances parent de SpringBoot

<!--	SpringBoot父项目依赖管理-->
	<parent>
		<artifactId>spring-boot-parent</artifactId>
		<groupId>org.springframework.boot</groupId>
		<version>2.2.9.RELEASE</version>
		<relativePath/>			<!-- 查看本地仓库的源码 -->
	</parent>
Copier après la connexion
1.1 Le fonctionnement du lanceur de dépendances parent

Le pointeur de la souris reste allumé spring-boot-parentCtrl + bouton gauche de la souriscliquez sur Entrer et prenons un aperçu de ce dont le lanceur de dépendances parentales est responsable :

<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-dependencies</artifactId>
   <version>${revision}</version>
   <relativePath>../spring-boot-dependencies</relativePath>
</parent>
Copier après la connexion

Entrez d'abord et découvrez : ce lanceur de dépendances parentales a un père<>, comme ci-dessus ! Nous analyserons cela en profondeur plus tard ! ! !

Ensuite, regardez

<properties>
   <main.basedir>${basedir}/../..</main.basedir>
   <disable.checks>false</disable.checks>
   <git.url>https://github.com/spring-projects/spring-boot</git.url>
   <git.connection>scm:git:git://github.com/spring-projects/spring-boot.git</git.connection>
   <git.developerConnection>scm:git:ssh://git@github.com/spring-projects/spring-boot.git</git.developerConnection>
   <java.version>1.8</java.version>
   <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
   <maven.version>3.5.4</maven.version>
   <maven-resolver.version>1.1.1</maven-resolver.version>
   <spock.version>1.3-groovy-2.5</spock.version>
   <spring-asciidoctor-extensions.version>0.4.0.RELEASE</spring-asciidoctor-extensions.version>
   <spring-doc-resources.version>0.1.3.RELEASE</spring-doc-resources.version>
   <spring-doc-resources.url>https://repo.spring.io/release/io/spring/docresources/spring-doc-resources/${spring-doc-resources.version}/spring-doc-resources-${spring-doc-resources.version}.zip</spring-doc-resources.url>
   <testcontainers.version>1.12.5</testcontainers.version>
   <testng.version>6.14.3</testng.version>
</properties>
Copier après la connexion

et voyez qu'il y a une déclaration d'attribut ici, qui déclare la version jdk, le format d'encodage, la version packagée et compilée, etc. ; ! !

Continuons

Analyse du code source de la gestion des dépendances SpringBoot

Cette partie concerne la gestion des plug-ins de SpringBoot

conseils :

Lors de l'importation de plug-ins, étant donné que le plug-in du module de gestion <> Il n'est pas nécessaire de prendre en compte les problèmes de contrôle de version du plug-in.

1.2 Réponse à la question

On Ctrl+clic droit <>, et dès qu'on entre, on voit une série de numéros de version :

Analyse du code source de la gestion des dépendances SpringBoot

Les numéros de version de nombreux frameworks tiers sont déclarés ici, et ceux correspondants ici sont le numéro de version de 2.2.9.RELEASE, si vous changez la version de SpringBoot, la version ici changera également. Mais comme mentionné précédemment, <> n'est qu'une déclaration ! ! !

Nous avons ensuite

Analyse du code source de la gestion des dépendances SpringBoot

La raison pour laquelle le projet n'a pas besoin d'importer le numéro de version doit être<> Ceci est basé sur la gestion des dépendances, donc mon projet Springboot dispose déjà d'un verrouillage de version et d'autres configurations après avoir hérité de spring-boot-starter-parent. C'est pourquoi il n'est pas nécessaire d'écrire un numéro de version pour certaines dépendances dans le projet Spring Boot.

Ⅱ. D'où vient le package JAR dont dépend le projet ?

Spring-Boot-Starter-ParentLa fonction principale du starter de dépendance parent

est d'effectuer la
gestion unifiée des versions

, puis le projet. dépend d'où vient le package JAR ?

2.1 Analyse du code source Nous utilisons <> comme point de percée Nous utilisons toujours Ctrl + bouton gauche de la souris pour entrer. Gestion des dépendances de la série boot-starter-web :

<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-json</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-validation</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.apache.tomcat.embed</groupId>
					<artifactId>tomcat-embed-el</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
		</dependency>
	</dependencies>
Copier après la connexion
Nous avons uniquement introduit spring-boot-starter-web comme dépendance dans pom.xml (c'est-à-dire qu'il repose directement sur le démarreur de dépendance Web), et cela dépend de tomcat, springmvc , etc. Le Le transfert de dépendances est effectué dans ce processus, et lorsque nous cliquons sur la dépendance dans n'importe quel lanceur de dépendances Web, nous constatons qu'il contient encore de nombreuses dépendances. En prenant Tomcat comme exemple :

Il. contient toujours les exigences pour démarrer Tomcat toutes les dépendances. 2.2 Réponses à la question

Analyse du code source de la gestion des dépendances SpringBootÀ ce stade, nous pouvons savoir que la fonction principale du starter de dépendance spring-boot-starter-web est de conditionner toutes les dépendances du scénario de développement web (basé sur la méthode de transfert de dépendances, charger le pot correspondant dans le sac d'entrepôt actuel).

Exactement, lorsque le démarreur de dépendance spring-boot-stater-web est introduit dans pom, le numéro de version du fichier de dépendance importé est toujours géré uniformément par la dépendance parent spring-boot-starter-parent (c'est également un élément important). (La manifestation de
La convention SpringBoot est supérieure à la configuration
). En plus du démarreur de dépendance Web présenté ci-dessus, Spring Boot fournit également des dépendances pertinentes pour de nombreux autres scénarios de développement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal