Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建初始化的Springbean(在会话范围内)_Spring_Jsf 2_Primefaces_Facelets - Fatal编程技术网

如何创建初始化的Springbean(在会话范围内)

如何创建初始化的Springbean(在会话范围内),spring,jsf-2,primefaces,facelets,Spring,Jsf 2,Primefaces,Facelets,我正在尝试为Spring/facelets应用程序创建多选项卡(JavaScript选项卡)界面,我有一个s.c.窗口管理器,它保存着一系列窗口(选项卡)。每个窗口(选项卡)都包含Springbean(会话范围),它接收(作为注入)其他Springbean,例如业务服务、DAOBean等。我正在为facelets零件使用Primefaces p:tabView 当用户创建新选项卡时,应创建新的SpringBean(作为窗口/选项卡的一部分)并将其添加到窗口管理器bean(WindowManage

我正在尝试为Spring/facelets应用程序创建多选项卡(JavaScript选项卡)界面,我有一个s.c.窗口管理器,它保存着一系列窗口(选项卡)。每个窗口(选项卡)都包含Springbean(会话范围),它接收(作为注入)其他Springbean,例如业务服务、DAOBean等。我正在为facelets零件使用Primefaces p:tabView

当用户创建新选项卡时,应创建新的SpringBean(作为窗口/选项卡的一部分)并将其添加到窗口管理器bean(WindowManager.addWindow(…)具有从p:commandButton收集的方法,该方法创建窗口/选项卡及其会话)。问题是-如何创建这个bean并初始化它(使用注入的bean)?一种解决方案可能是调用ctx.getBean(“beanName”),但我害怕使用它,因为它有一个名称,而且这个名称似乎是唯一的


可能SpringBean的编程创建不是一个好的设计(它们应该自动创建,但在处理web请求时,web服务器/Spring上下文会自动创建),但在我的情况下,这似乎是必要的。

您必须使用范围“prototype”定义该bean,此设置导致Spring上下文在每次调用context.getBean(“beanName”)时创建一个新的新实例

要对此进行配置,您可以使用:

@scope("prototype") 


这取决于您使用的是java还是xml配置。有关更多详细信息,请参阅Spring文档:

<bean id="beanName" class="com.foo.myBean" scope="prototype"/>