1. 依存関係の管理
Ⅰ. 一部の依存関係をインポートするときにバージョンを指定する必要がないのはなぜですか?
プロジェクトの作成時に追加した依存関係では、バージョン番号を指定するのに役立ちませんでは、SpringBoot はどのようにバージョン アカウントを指定するのでしょうか?
さあ、SpringBoot の親依存関係スターターを剥がしましょう
<!-- SpringBoot父项目依赖管理--> <parent> <artifactId>spring-boot-parent</artifactId> <groupId>org.springframework.boot</groupId> <version>2.2.9.RELEASE</version> <relativePath/> <!-- 查看本地仓库的源码 --> </parent>
1.1 親依存関係スターターの働き
マウス ポインタは spring -boot- の上に留まります。親UpCtrl マウスの左ボタンクリックして、この親依存関係ランチャーが何を担当しているかを見てみましょう:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${revision}</version> <relativePath>../spring-boot-dependencies</relativePath> </parent>
まず中に入って見つけます: この親依存関係ランチャーがあります。上記のように、彼は父親です!これについては後で詳しく分析します。 ! !
その後、読み続けてください
<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>
#続きましょうここには、jdk バージョン、エンコード形式、パッケージ化およびコンパイルされたバージョンなどを宣言するプロパティ宣言が表示されますが、これは単なるステートメントです。 ! !
ヒント: プラグインをインポートする場合、ここでの 管理モジュール プラグインは特定のバージョン番号を必要とするため、プラグインのバージョン管理を考慮する必要はありません。1.2 質問への答えCtrl キーを押しながら を右クリックすると、すぐに一連のバージョン番号が表示されます。
2.2.9.RELEASE のバージョン番号に対応します。SpringBoot のバージョンが変更された場合、ここのバージョンも変わります。ただし、前述したように、 は単なるステートメントです。 ! !
それでは、ヒント: spring-boot-starter-parentは、spring-boot-dependencyを継承することでSpringBootの依存関係管理を実現しているので、私のSpringbootプロジェクトでは、spring-boot-starter-parentを継承した上でバージョンロックなどの設定がすでに行われている。はい。これが、Spring Boot プロジェクトでⅡ. プロジェクトが依存する JAR パッケージはどこから来ますか?部分的な依存関係 のバージョン番号を記述する必要がない理由です。
2.1 ソース コードを分析します < ;> を使用します。画期的な方法として、Ctrl キーを押しながらマウスの左ボタンをクリックします。spring-boot-starter-web では、一連の依存関係管理が明確に確認できます:Spring-Boot-Starter-Parent Parent dependency Starter主な機能は 統合バージョン管理を実行することです では、プロジェクトが依存する JAR パッケージはどこから来たのでしょうか?
<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>これは紹介するだけです。 pom.xml では、Spring-boot-starter-web は依存関係 (つまり、Web 依存関係スターターに直接依存) であり、tomcat、springmvc などに依存しています。つまり、
依存関係の転送 Web 依存関係ランチャーで依存関係をクリックすると、そこにはまだ多くの依存関係があることがわかります。Tomcat を例に挙げます。 # には、Tomcat を起動するために必要なものがすべて含まれています。
2.2 質問への答え
この時点で、spring-boot-starter-web 依存関係スターターの主な機能は、Web のすべての依存関係をパッケージ化することであることがわかります。開発シナリオ (依存関係の配信方法に基づいて、現在のウェアハウスに対応する jar パッケージをロードします)。
このように、pom. 依存関係ファイルなどに spring-boot-stater-web 依存関係スターターが導入されると、当然ながら、これら導入された依存関係ファイルのバージョン番号は依然として によって統一管理されます。 spring-boot-starter-parent 親の依存関係 (これは、SpringBoot の規則は構成よりも優れている の重要な現れでもあります) Spring Boot が提供するもの 上記で紹介した Web 依存関係ランチャーに加えて、関連する依存関係も提供します。他の多くの開発シナリオ。
以上がSpringBoot の依存関係管理のソース コード分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

WebStorm Mac版
便利なJavaScript開発ツール
