我有一个 ManagedBean 说 clsA,在这个 clsA 里面有一个 BOC 对象,它将用 DI 填充。如果我想在 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>
现在我发现了一个问题,如果我clsA
在 Spring 配置中声明了 bean,我的 JSF beanclsA
与 Spring 配置中的声明同名,将无法工作。这意味着如果我doFuncD()
从 JSF 调用,它不会被调用。如果我删除clsA
Spring 声明,JSF beanclsA
工作正常。
有没有更好的方法从 managedBeanClsA
构造函数调用 BOC?