clsA という ManagedBean があります。この clsA には、DI で満たされる BOC オブジェクトがあります。clsA の構築中に BOC を呼び出したい場合は、clsA コンストラクターで実行します。コードは次のようになります。
@ManagedBean(name="clsA")
public class ClsA {
private BOC boc;
public clsA(BOC theBoc) {
theBoc.doFuncA();
}
public String doFuncD() { return ""; }
}
そして、Spring 構成には次のようになります。
<bean id="theBoc" class="com.foo.BOC"/>
<bean id="clsA" class="com.foo.clsA">
<constructor-arg value="theBoc"/>
</bean>
ここで、Spring 構成内で Bean を宣言すると、Spring 構成内で宣言されたものと同じ名前clsA
の JSF Beanが機能しないという問題が見つかりました。JSF からclsA
呼び出すと、get 呼び出しではないことを意味します。Spring 宣言doFuncD()
を削除すると、JSF Beanは正常に動作します。clsA
clsA
managedBeanClsA
コンストラクターから BOC を呼び出すより良い方法はありますか?