概要
今回は Maven + Spring Framework + Hibernate + JPA + JUnit の組み合わせで環境構築。開発環境
| 項目 | 値 |
|---|---|
| OS | Windows XP Pro SP2 |
| IDE 環境 | Eclipse 3.3.2(Preiades All in One) |
| Java | JDK 6 update 6 |
| DB | PostgreSQL 8.3 |
準備
次の手順までHibernateを使ったシンプルなJPA環境構築と同じように進める。- Maven プロジェクト作成
- Java コンパイラー準拠レベルの設定
- pom.xml を設定する
- 設定ファイル作成
- META-INF/persistence.xml
- ehcache.xml
- log4j.properties
- BaseEntity, User クラス作成
pom.xml 修正
次のように修正する。src/main/resources ソース・フォルダ
META-INF/persistence.xml
次のように修正する。 Maven を使う場合、エンティティクラスは src/main/java に、META-INF/persistence.xml ファイルなどは src/main/resources フォルダに置く。この環境で Spring Framework + Hibernate にうまくクラスのアノテーションをスキャンしてもらうために、次のように記述している。
applicationContext.xml
Spring Framework の設定。Spring Framework 2.5 からサポートされたいくつかの記述により、前のバージョンよりも記述が簡単になっている。
context:property-placeholder によって、jdbc.properties を読み込んでいる。
${jdbc.url} のように applicationContext.xml 内に記述すると置換される。
context:annotation-config によって、クラスをスキャンし、@Service などのアノテーションを解釈する。
<context:component-scan base-package="test.test" /> によってスキャンするパッケージを明示的に指定している。
tx:annotation-driven によって、@Transactional アノテーションを解釈する。
jdbc.properties
新たに作成。applicationContext.xml の中で ${jdbc.driverClassName} などが置換される。Dao 作成
src/main/java フォルダの中で test.test.dao.UserDao クラスを作成する。@Service アノテーションを指定すると、Spring Framework のビーンとして解釈され、他のビーンから @Resource アノテーションなどによって呼び出せる。
@Transactional アノテーションによって、このクラスのメソッド呼び出し時に、トランザクションがまだオープンされていなければ、自動的にオープンする。