Yan Container−準備

Yan Containerとは

Yan ContainerはDependency InjectionやInversion of Controlを実現するためのプログラム(以下DIコンテナ)である.DIコンテナと言えば,Spring frameworkSeasarが有名である.

Yan Containerは“Yet Another Non-intrusive Container”の略で,“もう一つのでしゃばらないコンテナ”ぐらいの意味である.少しバージョンは古いが,日本語での紹介記事がもうひとつの軽量IoCコンテナ - Yan Container 0.7.1公開で読むことができる.

Yan Containerを作っているCodehauseは,他にもPicoContainerNanoContainerといった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)ある.以下のどれか一つを行えばコンパイル&実行が可能となる.

  1. これらのjarファイルをCLASSPATHにあるディレクトリに配置
  2. これらのjarファイルを置いたディレクトリをCLASSPATHに追加
  3. javac/javaの-cpオプションにjarファイルのあるディレクトリを追加

xml-apis.jarはYan Containerで使うxmlの設定ファイルNutsを使わなければいらない.

また,antを使う場合は,CLASSPATHに追加しないで,build.xmlに記述することもできる.次の例の場合,

  1. $YAN_HOMEにあるYan Containerを使い
  2. カレントディレクトリにあるファイルをコンパイル
  3. 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>