Yan Container−準備
Yan Containerとは
Yan ContainerはDependency InjectionやInversion of Controlを実現するためのプログラム(以下DIコンテナ)である.DIコンテナと言えば,Spring frameworkやSeasarが有名である.
Yan Containerは“Yet Another Non-intrusive Container”の略で,“もう一つのでしゃばらないコンテナ”ぐらいの意味である.少しバージョンは古いが,日本語での紹介記事がもうひとつの軽量IoCコンテナ - Yan Container 0.7.1公開で読むことができる.
Yan Containerを作っているCodehauseは,他にもPicoContainerやNanoContainerといったDIコンテナも作っている.
ダウンロード
ダウンロードのページからダウンロードできる.“Source And Documentation”と“Binaries”があるが,使うだけなら“Binaries”で問題ない.
この文章を書いた時点での最新バージョンは0.8.2で,“Source And Documentation”をダウンロードした場合はyan-0.8.2.zip,“Binaries”をダウンロードした場合はyan_bin-0.8.2.zipというファイルができる.
インストール
yan_bin-0.8.2.zipの中にjarファイルが3個(xml-apis.jar,jfunutil.jar,yan.jar)ある.以下のどれか一つを行えばコンパイル&実行が可能となる.
- これらのjarファイルをCLASSPATHにあるディレクトリに配置
- これらのjarファイルを置いたディレクトリをCLASSPATHに追加
- javac/javaの-cpオプションにjarファイルのあるディレクトリを追加
xml-apis.jarはYan Containerで使うxmlの設定ファイルNutsを使わなければいらない.
また,antを使う場合は,CLASSPATHに追加しないで,build.xmlに記述することもできる.次の例の場合,
- $YAN_HOMEにあるYan Containerを使い
- カレントディレクトリにあるファイルをコンパイル
- Main.classを実行
している.
<project name="yan" default="all" basedir=".">
<property environment="env"/>
<path id="yan">
<pathelement location="${env.YAN_HOME}/yan.jar"/>
<pathelement location="${env.YAN_HOME}/jfunutil.jar"/>
<pathelement location="${env.YAN_HOME}/xml-apis.jar"/>
<pathelement location="."/>
</path>
<target name="compile">
<javac srcdir="." destdir="." classpathref="yan"/>
</target>
<target name="main" depends="compile">
<java classname="Main" classpathref="yan"/>
</target>
<target name="all" depends="main"/>
</project>