Java Spring托管的请求范围bean构造函数在按下JSF命令按钮时调用了两次

Java Spring托管的请求范围bean构造函数在按下JSF命令按钮时调用了两次,java,spring,jsf,Java,Spring,Jsf,我正在使用JSF-Spring集成,我正在使用JSF从JSP调用一个Spring管理的请求范围bean方法。有一件事我不明白,Springbean的构造函数被调用了两次。为什么会发生这种情况 下面是Spring托管bean: @org.springframework.stereotype.Component @org.springframework.context.annotation.Scope("request") public class MyAction implements java.

我正在使用JSF-Spring集成,我正在使用JSF从JSP调用一个Spring管理的请求范围bean方法。有一件事我不明白,Springbean的构造函数被调用了两次。为什么会发生这种情况

下面是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视图:


您可以调试以跟踪从何处调用构造函数吗?非常确定其中一个调用是尝试从其他地方初始化,另一个调用是从应用程序/ui中初始化的。我得到了答案,构造函数被调用了两次,因为Spring的cglib代理机制。

您没有JSF请求范围的bean。您有一个Spring请求范围的bean。注意术语。我对你的问题进行了编辑,以澄清其中之一。JSF请求作用域bean将具有来自javax.faces.bean包的注释@ManagedBean@requestscope.Tarun,您能详细说明一下吗?代理对象的构造函数将被调用两次-