Spring压缩的请求scoped bean构造函数在按下JSF命令按钮时调用了两次

时间:2011-11-01 05:13:50

标签: java spring jsf

我正在使用JSF-Spring集成,我使用JSF <h:commandButton>从JSP调用Spring管理的请求范围bean方法。我无法理解的一件事是Spring bean的构造函数被调用了两次。为什么会这样?

这是Spring托管bean:

@org.springframework.stereotype.Component
@org.springframework.context.annotation.Scope("request")
public class MyAction implements java.io.Serializable {

    public MyAction(){
        System.out.println("inside request scoped bean");
    }

这是JSF视图:

<h:commandButton value="add" action="#{MyAction.add}" />

2 个答案:

答案 0 :(得分:0)

你可以调试来跟踪构造函数的调用位置吗?非常肯定其中一个调用是尝试从其他地方初始化,一个来自application / ui

答案 1 :(得分:0)

我得到了答案,因为Spring的cglib代理机制,构造函数被调用了两次。