目次

  1. 概要
  2. Mavenとの基本的な春の依存関係
  3. Mavenによる春の永続性
  4. Mavenを使用したSpringMVC
  5. MavenによるSpringセキュリティ
  6. Mavenを使用した春のテスト
  7. マイルストーンの使用
  8. スナップショットの使用
  9. 結論

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)、アスペクト指向プログラミング[X209X ]サポートとJavaBeansメカニズム

ランタイムスコープで依存関係を定義していることに注意してください。これにより、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>

これには、HibernateTemplateJpaTemplateなどの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を使用するための良い出発点になるはずです。