オープンソース紹介
DIコンテナ Seasar2
Seasar2は、Javaによる開発の生産性を高めることを目的に作成された非常に軽量なDI(Dependency Injection)コンテナです。
DI は、クラス間の依存関係をソースコードから取り除き、プログラム実行時に外部からクラス(コンポーネント)が生成され、
クラス間に依存関係が作成されるデザインパターンです。
DIコンテナは、これらのDIデザインパターンに基づいたクラス(コンポーネント)の生成や依存関係を管理するコンテナです。
Seasar2のDIコンテナは、S2Containerと呼ばれ、依存関係をdiconファイルと呼ばれるXMLベースの設定ファイルに記述する
ほか、型や命名ルールによる自動バインディングも行えます。
Spring Framework などの他のDIコンテナに比べ、設定ファイルの記述が少なく、非常に取り組みやすいDIコンテナであると考えています。弊社では、現在Seasar2フレームワークを主に開発を進めております。
AOP(Aspect Oriented Programiming)機能の実装
複数のクラスで利用される機能を別のモジュールとして実装し、そのモジュールの呼び出しをプログラム内部に記載するのではなく、設定ファイルや特定のルールにもとづいて外部から指定し、実行時に埋め込み呼び出すことができるようにする機能です。
よい例が、ログ出力機能を、各クラスのメソッド内に記述する代わりに、実行時に埋め込むことができます。
トランザクションの開始とコミット/ロールバックもAOPを利用することで、外部から実装できます。
O/R Mapping 機能の提供
S2Dao
XMLを使用しないO/R Mapping です。
XMLの代わりにJavaソースコードにメタデータを記述し、メソッドの命名規則などにより単純なSQLは自動生成が可能です。
複雑なSQLの場合は、外部ファイルとして手動でSQLを定義も可能。
Daoとしてはインターフェースのみを作成し、AOPにてフレームワーク側で実装されている。
S2JDBC
Javaクラスを呼び出すことでSQLを生成するO/R Mapping です。
SQLに近いイメージでクラス構成されており、シンプルでわかりやすいJavaプログラミングでSQLが実行できます。
Seasarを利用するメリット
- 国産でドキュメントが日本語で整備されている。
- 国内のコミュニティも活発で、情報が入手しやすい。
- 設定ファイルを極力少なくしており、特定のルールに基づいたクラス名からDIを実現可能
- Hot Deployに対応しており、アプリケーションサーバーを再起動せずに、修正したプログラムを実行でき、デバッグ時の開発効率を高めることが可能
- コンポーネントの独立性が高まり、再利用、テストが容易になる。
- コンポーネントの変更に強いシステム設計が可能となる。
ライセンス
The Apache Software License, Version 2.0
リンク
| <<back |
