/* * Copyright 2004-2006 the Seasar Foundation and the Others. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ package org.seasar.framework.container; /** * コンポーネントのインスタンスをどのように管理するのかを定義します。diconファイルのcomponentタグのinstance属性に指定します。コンポーネントインスタンス定義の種類は「singleton」、「prototype」、「application」、「request」、「session」、「outer」があります。 *
{@link S2Container#getComponent(Object)}
を何度呼び出しても同じインスタンスが返されます。{@link S2Container#getComponent(Object)}
を呼び出すたびに新たなインスタンスが返されます。{@link javax.servlet.Servlet}
を使う場合は、{@link javax.servlet.ServletContext}
毎に1つのインスタンスが作成されます。diconファイルのcomponentタグのname属性に指定した名前で、コンポーネントが{@link javax.servlet.ServletContext}
に格納されます。applicationを使う場合は、{@link org.seasar.framework.container.filter.S2ContainerFilter}
を設定する必要があります。{@link org.seasar.framework.container.filter.S2ContainerFilter}
を設定する必要があります。{@link org.seasar.framework.container.filter.S2ContainerFilter}
を設定する必要があります。{@link S2Container}
外で作成し、DIだけを行ないます。アスペクト、コンストラクタ・インジェクションは適用できません。{@link ComponentDeployer}
を返します。
*
* @param componentDef
* コンポーネント定義
* @return コンポーネントの生成やDIを行なうオブジェクト
*/
ComponentDeployer createComponentDeployer(ComponentDef componentDef);
}