范围的Spring Web Flow常量

时间:2014-09-09 12:53:26

标签: spring-webflow

在为scoped bean定义 @Scope 注释时,是否有使用Spring Web Flow而不是“view”,“conversation”等的常量?

我发现最接近的是 ScopeType 枚举,在这种情况下没有用。

感谢。

2 个答案:

答案 0 :(得分:1)

Scope annotation doc说:

    Scope means the lifecycle of an instance, such as singleton, prototype, 
    and so forth. Scopes provided out of the box in Spring may be referred 
    to using the SCOPE_* constants available in via ConfigurableBeanFactory 
    and WebApplicationContext interfaces. 

这些bean definitions中可用的常量是:

    org.springframework.beans.factory.config.ConfigurableBeanFactory
    public static final String  SCOPE_PROTOTYPE     "prototype"
    public static final String  SCOPE_SINGLETON     "singleton"

WebApplicationContext中可用的常量:

    org.springframework.web.context.WebApplicationContext
    public static final String  SCOPE_APPLICATION   "application"
    public static final String  SCOPE_GLOBAL_SESSION    "globalSession"
    public static final String  SCOPE_REQUEST   "request"
    public static final String  SCOPE_SESSION   "session"

答案 1 :(得分:0)

Spring webflow为流中定义的变量提供了5个不同的范围。 这些

来自Spring WebFlow reference

3.9。可变范围

Web Flow可以将变量存储在多个范围之一中:

流程范围

流量范围在流量开始时分配,在流量结束时销毁。默认情况下 实现时,存储在流范围中的任何对象都需要是Serializable。

查看范围

视图状态在状态退出时进入并销毁时分配视图范围。查看范围 只能在视图状态中引用。使用默认实现,存储任何对象 视图范围需要是Serializable。

请求范围

请求范围在调用流时分配,并在流返回时销毁。

Flash范围

当一个流开始时,Flash范围被分配,在每个视图渲染后被清除,并且当它被销毁时被销毁 流程结束。使用默认实现,存储在闪存范围中的任何对象都必须是可序列化的。

会话范围

会话范围在顶级流程开始时分配,在顶级流程时销毁 流程结束。对话范围由顶级流及其所有子流共享。默认情况下 实现中,会话范围对象存储在HTTP会话中,并且通常应该是Serializable以考虑典型的会话复制。

要使用的范围通常是在上下文中确定的,例如,取决于定义变量的位置 - 在流程定义(流程范围)的开始,在视图状态(视图范围)内等。在其他情况下, 例如,在EL表达式和Java代码中,需要明确指定它。后续部分 解释如何做到这一点。