« 門番を問いただす意味 | メイン | 何をデザインしているのか »

[JSUG]第2回勉強会の資料など

 4/13おこなわれたJSUG(日本Springユーザー会)勉強会での発表内容を公開しました。「SpringでDAO」ということで、僕の周りでDAOを使った開発をするときに使っているテクニックや気にしていることを詰め込みました。

 Google GroupのFileページにおいてあります。

発表資料:20070413-勉強会vol2-SpringでDAO_.ppt
ソースコード:20070413-勉強会vol2-SpringでDAO_src.zip


 発表ですが、時間が短かったこともあり特急モードで消化したため皆さんの理解もいまいちではないかと危惧しております。ぜひ資料とコードを眺めていただければと思います。

 見所はspring-s2daoでしょうか(デモ失敗したけどw)。spring-s2daoへの期待もあったようなのです。今後、S2DAOコミュニティと話をしていきたいと思います。あと、あまり解説できませんでしたがGenericDaoのアイデアはかなり面白いと思います。


 アジェンダを書いておきます。

DAOとは

DAOの設計
- 基本パターンはCRUD+Finderメソッド
- パラメタオブジェクトを利用しよう
- JavaSE5を使おう(TypeSafeEnum、Generics)

SpringでDAO
- 実装
-- 基本はORMを使おう(Hibernate、iBATIS、S2DAO)
-- SpringのORMサポートクラスを使おう
- 設定
-- AOPでトランザクション設定しよう(tx:advice、aop:config)
- テスト
-- Springで用意されたテストサポートクラスを使おう(AbstractTransactionalDataSourceSpringContextTests)
-- DAOを使うクラスをテストする場合はモックを使おう(easymock)

GenericDao with Spring
- GenericsとAOPを使ったDAO支援フレームワーク

気になること
- そもそもO/Rマッパって遅い
- 返値ListのFinderでOutOfMemoryになる(Iterator)
- 複数レコードの更新・削除処理が遅い
- キャッシュしたい(ORMもしくはOSCache)
- パフォーマンス計測したい(AOP)
- N+1問題(Lazyロード)
- SQLインジェクション(プリペアドステートメント)
- エンティティ露出問題

トラックバック

このエントリーのトラックバックURL:
http://www.arclamp.jp/mt33/mt-tracback.cgi/1946

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2007年04月16日 14:12に投稿されたエントリーのページです。

ひとつ前の投稿は「門番を問いただす意味」です。

次の投稿は「何をデザインしているのか」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Creative Commons License
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.
Powered by
Movable Type