メイヴンと春

Mavenでの春

1. 概要

このチュートリアルでは、the Spring dependencies via Mavenを設定する方法を説明します。 最新のSpringリリースはon Maven Centralにあります。

2. Mavenによる基本的なSpringの依存関係

Springは高度にモジュール化されるように設計されています。Springのある部分を使用しても、別の部分を使用する必要はありません。 たとえば、基本的なSpring Contextには、PersistenceまたはMVC Springライブラリがない場合があります。

the spring-context dependencyのみを使用する基本的なMaven setupから始めましょう。


    3.2.8.RELEASE
    


    org.springframework
    spring-context
    ${org.springframework.version}
    runtime

この依存関係–spring-context –は、実際のSpringインジェクションコンテナを定義し、spring-corespring-expressionspring-aop、およびspring-beansの少数の依存関係があります。 これらは、いくつかのcore Spring technologiesのサポートを有効にすることでコンテナを拡張します:Core Springユーティリティ、Spring Expression Language(SpEL)、Aspect Oriented Programmingサポート、およびJavaBeans mechanism

runtime scopeで依存関係を定義していることに注意してください。これにより、Spring固有のAPIにコンパイル時の依存関係がないことが保証されます。 より高度なユースケースでは、選択したSpring依存関係からruntimeスコープが削除される場合がありますが、より単純なプロジェクトでは、フレームワークを最大限に活用するためのno need to compile against Springがあります。

また、Spring 3.2以降、there is no need to define the CGLIB dependency(現在はCGLIB 3.0にアップグレードされています)–再パッケージ化され(すべてのnet.sf.cglibパッケージがorg.springframework.cglibになりました)、Springコア内に直接インライン化されていることにも注意してください。 JAR(詳細については、the JIRAを参照してください)。

3. Mavenを使用したSpring Persistence

ここで、the persistence Spring dependencies –主にspring-ormを見てみましょう。


    org.springframework
    spring-orm
    ${org.springframework.version}

これには、HibernateTemplateJpaTemplateなどのHibernateおよびJPAのサポートに加えて、永続性に関連するいくつかの追加の依存関係(spring-jdbcおよびspring-tx)が付属しています。

JDBCデータアクセスライブラリは、Spring JDBC supportJdbcTemplateを定義し、spring-txは非常に柔軟なTransaction Management Abstractionを表します。

4. Mavenを使用したSpring MVC

Spring Webとサーブレットのサポートを使用するには、上記のコア依存関係に加えて、2つの依存関係をpomに含める必要があります。


    org.springframework
    spring-web
    ${org.springframework.version}


    org.springframework
    spring-webmvc
    ${org.springframework.version}

spring-web依存関係には、サーブレット環境とポートレット環境の両方に共通のWeb固有のユーティリティが含まれ、spring-webmvc enables the MVC supportはサーブレット環境に含まれます。

spring-webmvcには依存関係としてspring-webがあるため、spring-webmvcを使用する場合は、spring-webを明示的に定義する必要はありません。

5. Mavenを使用したSpring Security

Security Maven dependenciesについては、Spring Security with Mavenの記事で詳しく説明しています。

6. Mavenによる春のテスト

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


    org.springframework
    spring-test
    ${spring.version}
    test

Spring 3.2の時点で、Spring MVCテストプロジェクトはコアテストフレームワークに含まれているため、spring-testの依存関係を含めるだけで十分です。

7. マイルストーンを使用する

Springのリリースバージョンは、Maven Centralでホストされています。 ただし、プロジェクトでマイルストーンバージョンを使用する必要がある場合は、カスタムSpringリポジトリをpomに追加する必要があります。


    
        repository.springframework.maven.milestone
        Spring Framework Maven Milestone Repository
        http://repo.spring.io/milestone/
    

このリポジトリが定義されていると、プロジェクトは次のような依存関係を定義できます。


    org.springframework
    spring-core
    3.2.0.RC2

8. スナップショットを使用する

マイルストーンと同様に、スナップショットはカスタムリポジトリでホストされます。


    
        repository.springframework.maven.snapshot
        Spring Framework Maven Snapshot Repository
        http://repo.spring.io/snapshot/
    

SNAPSHOTリポジトリをpom.xmlで有効にすると、次の依存関係を参照できます。


    org.springframework
    spring-core
    3.3.0.BUILD-SNAPSHOT

同様に– 4.xの場合:


    org.springframework
    spring-core
    4.0.3.BUILD-SNAPSHOT

9. 結論

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