Spring Experience Live
Spring fundamentals
デモ2
EasyMockを使って単体テスト。ちょっと複雑だけどテストコードの中でモックの挙動を書いているのでレビューしやすいかも。
(staticインポートを利用する)
ただし、デモ中挙動の書き方を間違えてテストがレッドになったので、使うときは注意が必要っぽいです。
デモ3
SpringContextTestを利用したテスト。
インテグレーションテストはこれを使おうという話。
デモ4
AspectJ AOPのデモ。
@Aspectの式の書き方が難しい(正規表現なので)ので、タイポしてトランザクションがかからないとかありそう。
Bean定義ファイルに
デモ5
Remotingのデモ。
RmiFactoryBeanProxyを利用したサーバークライアントのサンプル。
ファクトリプロクシを使うことでクライアントから透過的にBeanを利用することができるという話。でも透過的に使うはいいけどRmiとか性能に影響しそうなのでどう使うのか微妙。
Spring 1 to 2
simple in not simplistic
simplistic: 安易な
序盤はfundamentalsとほとんど同じ。
人があまり入ってないです。スカった?
Spring upgrading
「2.0にアップグレードするのに一番簡単な方法はjarを入れ替えることです。後方互換性が取れています。」
でもそれだとうまみがないので駄目ですね。
というかSpring 2.0のXMl記法とか超変わっているので、調査&検討にすんげー時間かかりそうです。
out of the box namespaces
ほとんどのタグがproperty子要素がなくなって親要素の属性になっているようです。
ただし、特殊なもの(TransactionとかPropetiesFactoryBeanとか)が例になっているので、ビジネスロジックはそのままかも。
→XSDファイルを書けばいいみたい。でもめんどくさい。
lang:タグで多言語使えるように拡張されているので、動的スクリプト言語でいろいろするのがはやりそうです。
JPA integration
SpringはJPAアノテーションを理解するらしい。けど例がJDBCとHibernateなんで、iBATISでどうなるか不明。
iBATISのセッションは明日なのでそこで確認する予定。
Configration by Convention
Convention over Configurationじゃなくてbyなので、コンフィグファイルは書くけど、紐付けは規約でやろうよという話。
viewハンドラやコントローラの命名など。
QA
- 「Spring IDEでXMLファイルはサポートされますか?」
- 「それはIDEの機能だからXSDは書かないとだめだね」
質問の意図を間違われたかも?補完はEclipseがやるからXSDは自分で書けって言われたのかも。
終わったあとで個人的に聞いてみた。
- 「Aspectのテストはどうやんですか?ちゃんとロギングしてるのか?トランザクションかかっているかとか」
- 「とても難しいね、単体テストはできないので、Aspect Delegatingを使うのがいいよ」
また質問の意味を伝え切れなかったかも。トランザクションかかってるかとかインテグレーションテストでの方法を聞きたかったのだけれどもAspectクラス自体のテストの方法を聞いたのかと思われてるっぽいです。Aspect Delegatingってなんのことかよくわからないのですが、たぶんTransactionInterceptorとか実際のマネージャはPOJOで書いてAspectからは呼び出すだけにするって意味かな?
- 「Spring IDEで編集したりできますか?将来的に開発する予定は?」
- 編集はできないね。見るだけ。将来的やるかは微妙だね。っていうのも私と開発プロジェクトは別だから。コミュニティがやればそうなるかも。
Dynamic Language...
Spring 2.0 and Dynamic Language
Spring2.0ではBeanの言語すらも問わないので、言語を超えてビジネスロジックを透過的に使うことができる。
個人的にはJavaのような厳密なインタフェース機構がないと成立しない気がするが。
In a nutshell
動的言語の話なんですが、基本的にスクリプト言語としてはgroovyの中の人が来ていて、これがお勧めみたいです。
小規模から中規模で、ミッションクリティカルでないものむけ。
プロトタイプに使えるとのことだが、プロトを動的言語で書いたらそれを捨てることになりそうだからあまり役に立たないかも。
DSL
存在しないメソッドも呼べる。柔軟すぎてどうつかっていいかわからないです…