メイヴンと春
目次
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を使用するための良い出発点であるはずです。