1概要

このチュートリアルはMavenを使ってSpringの依存関係を設定する方法を説明します。最新のSpringリリースはhttps://search.maven.org/classic/#search%7Cga%7C1%7Cg%3A%22org.springframework%22[on Maven Central]で見つけることができます。

** 2 Mavenと基本的な春の依存関係

**

Springは高度にモジュール化されるように設計されています – Springのある部分を使用することで別の部分を使用することはできません。たとえば、基本的なSpringコンテキストは、PersistenceライブラリまたはMVC Springライブラリがなくてもかまいません。

基本的なMavenのセットアップから始めましょう。これは

spring-context

依存関係** のみを使用します。

<properties>
    <org.springframework.version>3.2.8.RELEASE</org.springframework.version>
    <!-- <org.springframework.version>4.0.2.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 Injection Containerを定義し、少数の依存関係を持ちます。


spring-core



spring-expression



spring-aop

、および

spring-beans

これらは、いくつかの

コアSpringテクノロジ

:Core Springユーティリティ、http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/expressionsのサポートを有効にすることでコンテナを補強します。 .html[Spring Expression Language](SpEL)、http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/aop.html#aop-introduction[アスペクト指向プログラミング]サポートおよびhttp://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/beans.html#beans-definition[JavaBeansメカニズム]]。

依存関係を


runtime

スコープ

で定義していることに注意してください。これにより、Spring固有のAPIにコンパイル時の依存関係がないことが確実になります。より高度なユースケースでは、

runtime

スコープはいくつかの選択されたSpringの依存関係から削除されるかもしれませんが、より単純なプロジェクトのために、フレームワークをフルに活用するためにSpringに対してコンパイルする必要はありません。

また、Spring 3.2以降、

CGLIB依存関係を定義する必要がなくなりました

(現在はCGLIB 3.0にアップグレードされました) – 再パッケージ化され(all

net.sf.cglib

パッケージは

org.springframework.cglib

になり)、インライン化されました直接スプリングコアJAR内にあります(詳細はhttps://jira.springsource.org/browse/SPR-9669[the JIRA]を参照)。


3 Mavenによる春の永続性

それでは、

永続的な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データアクセスライブラリは、http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/jdbc.html[Spring JDBC support]および

JdbcTemplate



spring-を定義します。 tx

は非常に柔軟なhttp://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/transaction.html[トランザクション管理の抽象化]を表します。


4 Mavenを使ったSpring MVC

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

を定義する必要はありません。


5 Mavenを使ったSpring Security

  • Security Mavenの依存関係** については、/spring-security-with-maven[Spring Security with Maven]の記事で詳しく説明しています。

** 6. Mavenによる春テスト

**

Spring Test Frameworkは、以下の依存関係を介してプロジェクトに含めることができます。

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>${spring.version}</version>
    <scope>test</scope>
</dependency>

Spring 3.2の時点で、Spring MVC Testプロジェクトはコアのテストフレームワークに含まれています – したがって、

spring-test

依存関係を含めることで十分です。


7. マイルストーンの使い方

SpringのリリースバージョンはMaven Centralでホストされています。ただし、プロジェクトでマイルストーンバージョンを使用する必要がある場合は、カスタム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>3.2.0.RC2</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>

SNAPSHOTリポジトリがpom.xmlで有効になったら、次の依存関係を参照できます。

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>3.3.0.BUILD-SNAPSHOT</version>
</dependency>

同様に – 4.xの場合:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>4.0.3.BUILD-SNAPSHOT</version>
</dependency>


9結論

この記事では、

SpringとMaven

の使用に関する実用的な詳細について説明します。ここに示されているMavenの依存関係はもちろん主要なもののうちのいくつかです、そして他のいくつかは言及する価値があるかもしれません、そしてまだカットをしていません。それにもかかわらず、これはプロジェクトでSpringを使用するための良い出発点であるはずです。