Spring Experience Live

Spring fundamentals

  • 会場であった質問
    • EJB3.0はどうよ
      • EJB3.0hあ2.0に比べて大幅に進化したけど、Spring1.0の段階だ。とてもよいけれどまだ機能不足かも(聞き取り怪しいのでうそかも)
    • コンストラクタインジェクションとセッタインジェクションはどっちがいいの?
      • セッタインジェクションは名前に意味をつけられるのが良いです。コンストラクタインジェクションでは型で判別するので〜〜〜(くらいしか聞き取れ
デモ

買い物ポイント取得アプリを作成。

  • 会場であった質問
    • XMLのタイポは?
      • いいツールを使うこと。Spring IDEとか。ただし最初にすべて読みこんでインスタンスが作れるか確認するので大丈夫だ。

デモ2

EasyMockを使って単体テスト。ちょっと複雑だけどテストコードの中でモックの挙動を書いているのでレビューしやすいかも。
(staticインポートを利用する)

ただし、デモ中挙動の書き方を間違えてテストがレッドになったので、使うときは注意が必要っぽいです。

デモ3

SpringContextTestを利用したテスト。
インテグレーションテストはこれを使おうという話。

デモ4

AspectJ AOPのデモ。
@Aspectの式の書き方が難しい(正規表現なので)ので、タイポしてトランザクションがかからないとかありそう。

Bean定義ファイルにとか書くとAOPアスペクトクラスにハードコードしたアノテーションで指定したサービスにアスペクトがウィーブされる。

デモ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

存在しないメソッドも呼べる。柔軟すぎてどうつかっていいかわからないです…