The Web Beans Manifesto
WebBeansのメインテーマはコンポーネントの疎結合です。疎結合なので、コンポーネントの差し替えや拡張が簡単になり、システムをよりダイナミックにしてくれます。コンポーネントはコンテキストで管理されるので、アプリケーションはコンポーネントのライフサイクルを管理する必要はありません。と、ここまではSeamとほとんど一緒。
WebBeansでは、アノテーションの使い方がSeamよりも徹底しています。Seamコンポーネントでは@Scopeや@Nameをはじめ、複数のアノテーションがクラス定義につきますが、WebBeansでは「ステレオタイプ(stereotype)」というアノテーションにまとめられます。コンポーネントの検索は、Seamでは名前と型だけでしたが、WebBeansではアノテーションも検索時に使用されます。
それから、WebBeansではアプリケーション*1がWebBeans APIによってコンテキストを定義することができます。つまり、コンテキストを拡張することができるのです。これに限らず、WebBeansではコンポーネントのコアとなる基本的なAPIが提供されています。だから、Gavin自身がブログのコメントで書いているように、WebBeansはコアエンジン、SeamはWebBeans上のフレームワークレイヤ、として位置づけられるというのも、うなずけます。
The theme of Web Beans is:
* Loose coupling with strong typing!