JAVAの記事一覧

目次

DIコンテナについて

よく言われる特徴としては、疎結合。これだとようわからんので、かんたんにいうと。今までつながっていた部品をブツブツ区切って、途中のつなぎ役として汎用的に使える部品をはさめるようにしましたってこと。

大体の方針

ブツブツ区切りたいクラスがあれば、変わりになるインタフェースを作製しておいてそれを使うようにする。

名前の由来について思うこと

たぶん、汎用的な部品のイメージがバネのようなもんだから、Springという名前になったんだとおもう。

実装ではSpringとかSeaser2とかだ

Spring(本家 英語)

http://www.springsource.org/

ダウンロード

http://www.springsource.org/download

Javaのバージョンによる制限があります。

SpringFramework?の導入

http://works.dgic.co.jp/djwiki/Viewpage.do?pid=@537072696E674672616D65776F726BE5B08EE585A5E7B7A8

ダウンロードして解凍したらdistというフォルダがあるので、その中のspringをEclipseのパスに通すといいらしい。

spring-framework-2.5.6.SEC01\dist

ビルドパスに追加

[Eclipse]-[プロジェクトのプロパティ]-[Javaのビルドパス]-[ライブラリー]-[外部Jarの追加]

Springの入門

https://www.myeclipseide.jp/modules/contents04/index.php?id=32

Spring での Object/XML マッピングのサポートを探る

http://www.ibm.com/developerworks/jp/xml/library/x-springXOM/

Spring Framework 3.0の新機能 Part1

http://netforestdevnote.blog26.fc2.com/blog-entry-4.html

Spring Framework 3.0の新機能 Part2

http://netforestdevnote.blog26.fc2.com/blog-entry-14.html

Spring Framework 3.0の新機能 Part3

http://netforestdevnote.blog26.fc2.com/blog-entry-23.html

spring-test.jar

JUnitと Springを連携させるには、spring.jarの他に spring-test.jar が必要となる。

Eclipseについてる JUnitを捨てる

Eclipseについている JUnitはちょっと古くて、Springに対応するために必要なインターフェイスJUnit4ClassRunner?が存在していない。なので Eclipseに標準で付属している JUnitをビルドパスから外し、最新の JUnitへビルドパスを通す必要がある。その場合でも "Run as"→"JUnit TestCase?"はちゃんと動くので心配ない。

「spring-mock.jar」はSpring 2.5ではTestContext?フレームワークに焦点を絞った「spring-test.jar」に置き換えられました。しかし「spring-test.jar」には「spring-mock.jar」の内容がすべて含まれているので、既存の単体・結合テストで使用する場合でもそのまま置き換えることができます。

参考URL

http://walbrix.net/blog/2010/05/spring.html

Seaser2の入門

http://snowhiro.web.fc2.com/seasar2/seasar2_index.html

Seaser2もブツブツインタフェースで区切って、

設定ファイルで関係付けしてといったぐあい

s2Dao

最大のメリットはSQLの自動生成

S2JDBCとActiveRecord?の比較

S2JDBCとRailsのActiveRecord?は、エンティティとテーブルは同一構造となる点は同様だが、細かいようで重要な違いとしてActiveRecord?は豊富なメタプログラミングを駆使してエンティティの操作に対して豊富なフックを用意しおり様々な介入を行えます、それらを利用してデータ格納先としてのEntityに限定されず比較的ロジックを内部に保持できます。 JPAではエンティティマネージャから返却されるインスタンスはプロキシ化やエンハンスを行いEntityライフサイクル内で限定的な介入を行えますが、一般的にはあまり使われていないようです。対するS2JDBCはエンティティを純粋なPOJOとして扱います。意図しない挙動をしないため解り易いなどメリットと柔軟性のトレードオフで一概にどちらが優れているとは言えません。Seasarシリーズには実用的で便利な2WaySQLがあったり言語特製もふまえ同列で比較出来ない差を感じます!

そういえばHibernateよりCayenneが使いやすいといった意見を見た事があるのを思い出しました。JPA対応とかしてたような気がするのですがJPAエンティティライフサイクルの問題とかHibernateに対する違いってどうなんでしょうね?

何が省力になるのか

何が不便になるのか

Springの2.5までは下記の問題があった。

でもSpring3.0からは改善されている模様。

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS