Mavenで春
目次
- 概要
- Mavenとの基本的な春の依存関係
- Mavenによる春の永続性
- Mavenを使用したSpringMVC
- MavenによるSpringセキュリティ
- Mavenを使用した春のテスト
- マイルストーンの使用
- スナップショットの使用
- 結論
1. 概要
このチュートリアルでは、Mavenを介してSpring依存関係を設定する方法を説明します。 最新のSpringリリースは、MavenCentralでにあります。
2. Mavenとの基本的な春の依存関係
Springは高度にモジュール化されるように設計されています。Springの一部を使用することは、別の部分を必要としないはずです。 たとえば、基本的なSpringコンテキストには、PersistenceまたはMVCSpringライブラリがなくてもかまいません。
基本的なMavenセットアップから始めましょう。これはスプリングコンテキスト依存関係のみを使用します。
<properties>
<org.springframework.version>5.2.8.RELEASE</org.springframework.version>
</properties>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework.version}</version>
<scope>runtime</scope>
</dependency>
この依存関係– spring-context –は、実際のSpringインジェクションコンテナを定義し、少数の依存関係があります: spring-core 、 spring-expression 、 spring-aop 、およびspring-beans。 これらは、コアSpringテクノロジーの一部のサポートを有効にすることでコンテナーを拡張します:コアSpringユーティリティ、 Spring式言語(SpEL)、
ランタイムスコープで依存関係を定義していることに注意してください。これにより、Spring固有のAPIにコンパイル時の依存関係がないことが保証されます。 より高度なユースケースでは、 runtime スコープが一部の選択されたSpring依存関係から削除される場合がありますが、より単純なプロジェクトでは、フレームワークを最大限に活用するためにSpringに対してコンパイルする必要はありません。 。
また、JDK8はSpring5.2に必要な最小のJavaバージョンであることに注意してください。 また、現在のLTSブランチとしてJDK 11をサポートし、最新のOpenJDKリリースとしてJDK13をサポートします。
3. Mavenを使用したSpringの永続性
永続性のSpring依存関係–主にspring-ormを見てみましょう。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${org.springframework.version}</version>
</dependency>
これには、HibernateTemplateやJpaTemplateなどのHibernateとJPAのサポートに加えて、永続性に関連するいくつかの追加の依存関係spring-jdbcとが付属しています。 spring-tx。
JDBCデータアクセスライブラリは、 SpringJDBCサポートとJdbcTemplateを定義し、spring-txは非常に柔軟なトランザクション管理抽象化を表します。 ]。
4. Mavenを使用したSpringMVC
Spring Webとサーブレットのサポートを使用するには、上記のコア依存関係に加えて、pomに2つの依存関係を含める必要があります。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
spring-web 依存関係には、サーブレット環境とポートレット環境の両方に共通のWeb固有のユーティリティが含まれ、 spring-webmvcは、サーブレット環境のMVCサポートを有効にします。
spring-webmvcには依存関係としてspring-webがあるため、 spring-webmvc を使用する場合は、spring-webを明示的に定義する必要はありません。
Spring 5.0以降、リアクティブスタックWebフレームワークのサポートのために、 SpringWebFluxの依存関係を追加できます。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webflux</artifactId>
<version>${org.springframework.version}</version>
</dependency>
5. MavenによるSpringセキュリティ
Security Mavenの依存関係については、 Spring Security withMavenの記事で詳しく説明されています。
6. Mavenを使用した春のテスト
Spring Test Frameworkは、次の依存関係を介してプロジェクトに含めることができます。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
Spring 5では、同時テスト実行も実行できます。
7. マイルストーンの使用
SpringのリリースバージョンはMavenCentralでホストされています。 ただし、プロジェクトでマイルストーンバージョンを使用する必要がある場合は、カスタムSpringリポジトリをpomに追加する必要があります。
<repositories>
<repository>
<id>repository.springframework.maven.milestone</id>
<name>Spring Framework Maven Milestone Repository</name>
<url>http://repo.spring.io/milestone/</url>
</repository>
</repositories>
このリポジトリが定義されると、プロジェクトは次のような依存関係を定義できます。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.0-M1</version>
</dependency>
8. スナップショットの使用
マイルストーンと同様に、スナップショットはカスタムリポジトリでホストされます。
<repositories>
<repository>
<id>repository.springframework.maven.snapshot</id>
<name>Spring Framework Maven Snapshot Repository</name>
<url>http://repo.spring.io/snapshot/</url>
</repository>
</repositories>
pom.xmlでSNAPSHOTリポジトリを有効にすると、次の依存関係を参照できます。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.0.3.BUILD-SNAPSHOT</version>
</dependency>
同様に– 5.xの場合:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.0-SNAPSHOT</version>
</dependency>
9. 結論
この記事では、 Spring withMavenの実際的な使用方法について説明します。 ここに示されているMavenの依存関係は、もちろん主要な依存関係の一部であり、他のいくつかは言及する価値があり、まだ削減されていない可能性があります。 それでも、これはプロジェクトでSpringを使用するための良い出発点になるはずです。