オープンソース軽量EJB 3.0実装であるOpenEJBが最近リリースされたが(リンク)、EJB 3.1(リンク) Singletons、コンストラクター注入およびSpring(リンク)フレームワークとの統合をサポートするものである。先週Apache OpenEJB(リンク)開発チームは、OpenEJB 3.1バージョンのリリースを発表した(リンク)。最新バージョンは、スタンドアロンサーバとして使用可能なだけでなく、Tomcat(リンク)、JUnit(リンク)、 Eclipse(リンク)、Maven(リンク)、Ant(リンク)やその他のIDEやアプリケーションの組み込みサーバとしても使用可能なEJB 3.1機能をサポートする。EJB 3.1スペックは、Java EE 6(リンク)(来年初めにリリース予定)の一部としてリリースされる。
EJB Singletons:
EJB Singletons: EJB 3.1 Singletonのサポート(リンク)は、アプリケーションの起動/終了フックやマルチスレッド機能などの新機能をEJBに追加する。ステートレスBeanの使用 目的の多くは、マルチスレッドSingletonに取って代わられる。EJB 3.1のリリースの一部になる組み込み可能なEJBコンテナおよびCollapsed EAR(.warファイルのejbs)機能の他に、このリリースには新たなEJB 3.1 SingletonセッションBeanタイプのサポートがある。
Singleton機能は、サーブレットのような複数のスレッドで同時に起動可能なアプリケーションに、ステートレスセッションBeanの1つのインスタ ンスが確実に存在することを保証する。ローカルのサポートやリモートビジネスインターフェイス、Webサービス、セキュリティやトランザクションのような 問題など、従来型のセッションBeanが可能なことは、すべて可能である。また、カスタム初期化やSingletonでのリソースクリーンアップロジック は、@PostConstruct(リンク)(アプリケーション起動時に呼び出される)および@PreDestroy(リンク)(ア プリケーション終了時に呼び出される)メソッドを使用して、管理可能である。これにより、かつてはサーブレットのみが可能であった、アプリケーションライ フサイクルリスナーとして機能させることができる。概念的にはサーブレットと類似した@Startupアノテーションがあるが、サーブレットとは異なり、 引数として数を取らない。その代わり、@DependsOnアノテーションは、メインセッションBeanクラスが必要としているのはどのSingletonsかを定義するのに使用可能である。またコンテナは確実にメインクラスの前に、依存クラスを開始する。
コンストラクター注入:
コンストラクター注入(リンク)機能は、サーブレット、フィルター、リスナーまたはJSF管理BeanのようなJava EEリソースが、アノテーションを使用し、コンストラクターレベルで注入されるようにする。このように、Java EEコンポーネントでの依存性を管理するために、デベロッパは依然として最終フィールドを使用でき、古いJavaコンストラクターを計画し、setter や専用フィールドの注入を回避することができる。
Spring統合:
Spring統合(リンク)機能は、デベロッパにとってSpring BeanをOpenEJBに、またOpenEJBコンポーネントをSpringアプリケーションに組み込むことができるようにする。これは、 @Resource(リンク)アノテーションを使用し、Spring BeanをEJBに注入することで可能になり、EJBは標準Spring依存性注入(リンク)(DI)機構経由で、Springに注入可能である。OpenEJB 3.1のリリースに含まれるこの機能は、まだ試験段階であるため、ユーザによるフィードバックに基づいて、変更される可能性がある。
OpenEJB 3.1のリリースには、既存の機能に対する拡張機能も含まれる。拡張機能の例は以下のとおりである。
- Multicast Client-Server Discoveryおよびグループ化
- JSF 1.2(リンク) ManagedBeansの注入サポート
- クラスパスで発見されるモジュールのEAR型の集約
- クラスパス経由で発見可能なConnectorModuleおよびPersistenceModule
- ユニットテスト向けに改善されたJavaAgent/JPA拡張機能
- SSLでのEJBdプロトコル
- JDBC/DataSourceベースのログインモジュール
OpenEJBプロジェクトチームは、ユーザがSingleton(リンク)とSpringの統合(リンク)などの新機能について詳細を知ることができるようにSingleton API(リンク)やいくつかの例を記載した、ドキュメンテーションを提供している。
原文はこちらです:http://www.infoq.com/news/2008/11/openejb-3.1-release