Spring原型范围列表

时间:2016-04-25 10:52:50

标签: java spring

我对春天的prototype范围有疑问。

目前我尝试在spring应用程序中实现向导。

在向导控制器中,我有类似

的内容

WizardAbstract类

private List<WizardStep> _steps;
private WizardStep _activeStep;
private int _activeIndex;

public previous(){
    if(hasPrevious()){   
        _activeStep = _steps.get(_activeIndex);
    }
}

向导中的一个步骤就是像这样的实现

WizardNameStep类

@Named
@Scope(value="prototype"}
public WizardNameStep implements WizardStep {

    private String _name;

    @Override
    public String getName(){
        return _name;
    }

    @Override
    public void setName(String name){
        _name = name;
    }
}

我的问题是,当我在向导中输入名称的值并转到下一步时,一切都很好。如果我现在回到上一步,我的价值就会丢失。列表中的get是否会创建一个新的prototype bean?

如何解决范围问题?我不想要无状态的步骤,但需要在步骤中调用一些弹簧服务。

修改

向导的配置类包括步骤的自动装配

@Named(value = "profileEditorWizardController")
@Scope(value = "session", proxyMode = ScopedProxyMode.INTERFACES)
public class ProfileEditorWizardControllerImpl extends WizardControllerAbstract<ProfileEditorWizardResult> implements ProfileEditorWizardController {

   @Inject
   private WizardNameStep _wizardNameStep;

0 个答案:

没有答案