Web開発を行っているときに、Spring Bootに依存関係を1つだけインポートする必要があり、Web開発に関連するすべてのパッケージがインポートされるのはなぜですか?
Web開発の依存関係をインポートします。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
Web開発に関連するすべてのパッケージが付属し
ています。開発プロセス中にガイドパッケージの問題を心配する必要はなく、直接使用できます。なぜこれが発生するのでしょうか。
依存関係の管理
1.親プロジェクト
まず、彼の親プロジェクトを見てみましょう。各SpringBootプロジェクトには、そのような親プロジェクトのコンテンツがあります。
例:
<!--父项目-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.1</version>
</parent>
この親プロジェクトの役割は、通常、依存関係の管理を行うことです。親プロジェクトで宣言された依存関係が多数ある場合があります。子プロジェクトが親プロジェクトに基づいている限り、子プロジェクトは将来の依存関係を書き込むためにバージョン番号を必要としません。私のプロジェクトが親プロジェクト(バージョン番号2.4.1)に基づいていた後、後で他の依存関係を導入しました。次のように、バージョン番号を記述しませんでした。
<!--父项目-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.1</version>
</parent>
<!--web插件-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!--简化部署,把项目打成jar包,直接在目标服务器执行即可。-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
したがって、親プロジェクトは依存関係の管理に使用されます。
2.自動バージョン調停メカニズム
親プロジェクトをクリックしてそのコンテンツを表示します。コンテンツは次のとおりです。
親プロジェクトがあることがわかりました。引き続きクリックしてコンテンツを表示します。いくつかのスクリーンショットは次のとおりです。
開発プロセスで使用する必要があるすべての一般的なjarパッケージのバージョン番号と依存関係を宣言していることがわかります。つまり、多くのjarパッケージのバージョン番号と依存関係をspring-boot-dependenciesで宣言しているため、記述する必要はありません。バージョン番号。これは自動バージョン調停メカニズムです。
3.バージョン調停メカニズムによって提供されるバージョン番号を使用しない方法
たとえば、デフォルトで提供されているmysqlドライバーの8.0.22バージョンを使用したくないが、5.1.47のmysqlバージョンを使用したい場合はどうすればよいですか?
2つの解決策がありますが、実際には、どちらもmavenが提供する機能を使用しています。最も優先度の高い原則は次のとおりです。
a。<プロパティ>を使用します
その後、mysqlドライバーがバージョン番号5.1.47をインポートしたことがわかります。スクリーンショットは、次のとおりです。
b。依存関係をインポートするときにバージョン番号を直接追加します
これらの2つの方法は、実際にはmavenが提供する機能を使用しています。最も近い優先順位の原則は、現在のプロジェクトで構成されている依存関係のバージョン番号を使用することです。現在のプロジェクトでバージョン番号が構成されていない場合は、親プロジェクトでバージョン番号を見つけます。