以前作成したCSSを使用したFlex版DIコンテナですが、機能を一つ追加しました。
init-method
Beanをインスタンス化して、プロパティをセットした後に呼び出しをして欲しいメソッドを定義できるようにしました。
このようなクラスを用意しておいて、
package test.asphalt2.factory.impl { import test.asphalt2.factory.FooService; public class FooServiceImpl implements FooService { private var _foo:String; public function set foo(value:String):void{ _foo = value; } public function init():void{ trace(_foo); } } }
CSSにこのように書くと
FooService{ bean-type:ClassReference("test.asphalt2.factory.impl.FooServiceImpl"); init-method:"init"; foo:"test" }
FooServiceImplをインスタンス化して、fooプロパティに"test"をセットした後に、initメソッドを呼びます。
init-methodは
init-method:"initA","initB";
のように書くことも出来、この場合はinitAメソッドとinitBメソッドを順に呼び出します。
ダウンロードは以下から。
サイト http://code.google.com/p/asphalt2/
Featured Downloadsから、asphalt2container_v0_02_00.zipをダウンロードしてください。
これ自体がeclipseプロジェクトになっています。
ライブラリだけ使う場合は、bin/asphalt2container.swcをプロジェクトにいれ、パスを通してください。
SVNでチェックアウトしたい場合は、
http://asphalt2.googlecode.com/svn/trunk/asphalt2container-project/asphalt2container/
をチェックアウトしてください。
また
http://asphalt2.googlecode.com/svn/trunk/asphalt2container-project/asphalt2container-test/
がテストプロジェクトになっていますので、こちらももっていくといいと思います。