Seasar4 EA1 Release
次期Seasarでは設定ファイルは不要になるという話を聞いた時から予想していたのですがやはりアノテーションでコンポーネントの登録と注入を制御するんですね。素晴らしい。
この方法だと.NETへの移植はそのまま対応するカスタム属性での実装になるので非常に自然になると予想されます。
using S2.NET.Framework.Container; using S2.NET.Framework.Container.Attribute; namespace Test.S2.NET.Framework.Container.Auto { ////// in C# /// [Component(name="foo", instance="prototype", autoBinding="constructor")] public class Foo : Greeting { private Foo2 foo2; [Inject("foo2")] public Foo2 Foo2 { get { return this.foo2; } set { this.foo2 = value; } } public string Greet() { return null; } } }
コンポーネントの例はこんな感じでしょうか。(カスタム属性クラスの実装は省略)
Javaの場合JDK1.4系だとbackport175を使用しなくてはなりませんが.NETは1.1でも特に制約はありませんし。むろん本家が安定化してから着手なのでしょうがS2.NETの実装も楽しみにしてます。