jpa

Spring+HibernateEntityManager(archetype編)

前回のおさらい 前回は、component-scan を用いつつ、ドメインモデル実装中の SpringFramework に依存したアノテーションを排除しました。 今回のテーマ 今回は、Spring+HibernateEntityManager 環境のサンプルプロジェクトの生成を、maven の maven-archet…

Spring+HibernateEntityManager(コンポーネント自動検出 without アノテーション編)

前回のおさらい 前回は、@Component アノテーション、@Scope アノテーション、context:component-scan 要素を用いて、Entity のパッケージ以下の各クラスを bean として自動登録しました。その実際の記述は以下のようになります。 @Component("user") @Scope…

Spring+HibernateEntityManager(コンポーネント自動検出 with アノテーション編)

SpringFramework2.5から、クラスパスを走査し、アノテーションの付加されたコンポーネントを自動検出する機能がサポートされています。典型的には、@Component, @Repository, @Service, @Controller 等のステレオタイプでアノテートされたコンポーネントクラ…

Spring+HibernateEntityManager(@Resource編)

今回は、前回の続きです。 @Resource アノテーションとは? @Resource アノテーションは、クラス、メソッド、フィールドに対して指定可能なアノテーションで、リソースへの参照を宣言するためのものです。JSR 250: Common Annotations for the JavaTM Platfo…

Spring+HibernateEntityManager(DBCPのvalidationQuery編)

今回は、Spring+HibernateEntityManager(AspectJ AOP with Load-Time-Weaver編)の続きです。 コネクションタイムアウトのハンドリング忘れてた(^^; 以前、beans.xml に DBCP の設定は行いましたが、コネクションタイムアウト対策を忘れていました。おいら…

Spring+HibernateEntityManager(AspectJ AOP with Load-Time-Weaver編)

今回は、Spring+HibernateEntityManager(@Required編)の続きです。 トランザクションがかからない!? 現在は、ServiceImpl#registerUser(User) メソッドに、@Transactional アノテーションを用いてトランザクションをかけています。 @Transactional publ…

Spring+HibernateEntityManager(XMLからの外部リソース参照編)

SpringFramework や Hibernate の定義ファイルには、スキーマの定義等、外部の URL を参照すると思しき箇所があります。本番環境では、外部への HTTP 接続が不可能な場合や、ネットワーク障害で外部にアクセスできなくなったりする可能性がありますので、そ…

Spring+HibernateEntityManager(@Required編)

DIし忘れに注意 実行時に、いきなり NullPointerException 喰らって、それが単なる bean への DI し忘れだとヘコみますよね。そういうときには、@Required アノテーションによって、コンテキスト起動時に DI の抜けを確認することができます。 ぬるぽの例 前…

Spring+HibernateEntityManager(@Transactionalアノテーション編)

xmlファイルによるトランザクション設定 前回までの設定では、トランザクションの設定は、beans.xml ファイルの以下の箇所で行っています。 <tx:advice id="readWriteAdvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="*" propagation="REQUIRED" /> </tx:attributes> </tx:advice> <aop:config> </aop:config>

Spring+HibernateEntityManager(Spring+DDDっぽく編 その4)

アプリケーション層 アプリケーションは、ドメインの概念と実装を、アプリケーション形作るための階層です(とおいらは思っている)。そのため、アプリケーションの起動部分や、インスタンスの生成やら生成されたインスタンス間の依存関係の設定なども含まれ…

Spring+HibernateEntityManager(Spring+DDDっぽく編 その3)

インフラストラクチャ層の位置づけ インフラストラクチャ層は、上位層から利用される層という位置づけで、内容的には何でもありです。プレゼンテーション層、アプリケーション層、ドメイン層のすべてから依存が可能です。しかし、インフラストラクチャ層は上…

Spring+HibernateEntityManager(Spring+DDDっぽく編 その2)

徹夜明けで満員電車で帰宅 orz仮眠後出社 o...rzなんだかなー。 サンプルをちょっとだけ現実的に変更 さすがに、クラス A とかだとリアリティにかけるので、ちょっと変更。 User というインタフェースを作成。何のユーザーなのかよく分かりませんが、とりあ…

Spring+HibernateEntityManager(Spring+DDDっぽく編)

おいらは DDD っぽいのが好き。 前回は、HibernateEntityManager を使ったベタなサンプルでした。しかし、おいらは DDD っぽいのが好きなので、今回は DDD(Domain-Driven-Design)っぽい設計にしてみます。 Layered Architecture ソースコードを、DDD の階層…

Spring+HibernateEntityManager(宣言的トランザクション編)

今回は、前回のサンプルを、プログラム的なランザクションから、宣言的なトランザクションに変更してみます。 主な変更点 aspectjweaverの追加。 aspectj の AOP 文法を利用するため、aspectjweaver のライブラリを追加。追加しないと、以下のような例外が出…

Spring+HibernateEntityManager(とりあえずSpring編)

前回は、HibernateEntityManager を使ったベタなサンプルでした。今回は、とりあえず Spring Framework を使ってみるという程度に拡張します。 拡張点 機能実行部を Serivce として抜き出し。 EntityManagerFactory を Serivce に DI することにして、Entity…

Spring+HibernateEntityManager(HibernateEntityManager単体編)

おいらはここ数年 Spring Framework と HibernateEntityManager 環境で開発をすることが多いのですが、動けばいいやー的な方向に流されてるような気がする今日この頃です。ということで、Spring+HibernateEntityManager 環境について、ステップ・バイ・ステ…