Java Spring托管的请求范围bean构造函数在按下JSF命令按钮时调用了两次
我正在使用JSF-Spring集成,我正在使用JSF从JSP调用一个Spring管理的请求范围bean方法。有一件事我不明白,Springbean的构造函数被调用了两次。为什么会发生这种情况 下面是Spring托管bean: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.
@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,您能详细说明一下吗?代理对象的构造函数将被调用两次-