ひがやすを技術ブログ

電通国際情報サービスのプログラマ

EJB3

EJB3のゆくえ

EJB3は、思った以上に普及のスピードが遅いですね。まだ、商用のアプリケーションサーバでJavaEE5をフルサポートしたものが(私の知ってる限りでは)いないというのが、最も大きな原因だと思いますが、EJB3自体が現在のDIよりもスペックがかなり落ちると言うこ…

DIContainerのEJB3対応

Seasar2では、次のSeasar2.4 Beta3で、EJB3対応がほぼ終わりますが、SpringでもEJB3対応やるみたいですね。 http://www.interface21.com/pitchfork JavaOneでRodがEJB3を否定していたのになぁ(笑)。 JPAのCriteria対応もやるみたいです。 http://www.infoq.co…

Statelessのinstance属性

これまで、@Statelessは、instance属性をprototypeにマッピングしていたのですが、core-ejbの3.4.5.2に All business object references of the same interface type for the same stateless session bean have the same object identity, which is assigned …

Lightweight EJB3

Lightweight EJB3のポイントは コーディングとテストの感覚間隔をできる限り短くすること。 アプリケーションサーバ無しでデプロイした状態でテストができること。 だと思っています。テストを短期間でかつ隅々まで行うことが重要です。 コーディングとテス…

@Statefulの解釈

SFSBは、クライアントごとの状態を持つことができるものだから、instance=PROTOTYPE, autoBinding=NONEへのマッピングになるんじゃないかなぁと思っています。 これって実は、@Statelessのときと同じなんだけどね。

@Stateless

@Statelessは、Seasar2の内部では、@Component(instance=InstanceType.SINGLETON, autoBinding=AutoBindingType.NONE)と解釈されます。どういう動きをするのか、Seasar2を知っている方なら直ぐに想像がつくでしょう。

Field Injection

EJB3のサポートに伴い、Seasar2でField Injectionをサポートします。使い方は、EJB3と同じでこんな感じ。 @EJB private Foo foo; この場合は、次の順序で対象となるコンポーネントを決定します。 フィールド名(foo)と同じ名前のコンポーネントがコンテナに登録…

annotation

EJB3では、Dependency Injectionの設定を@Injectionのように annotationを使って行われるようだ。 これにははっきりいって反対。 field injectionかsetter injectionかという問題ではない。 クラスレベルの静的な情報として、DIの設定が行われるのが問題だと…