在为scoped bean定义 @Scope 注释时,是否有使用Spring Web Flow而不是“view”,“conversation”等的常量?
我发现最接近的是 ScopeType 枚举,在这种情况下没有用。
感谢。
答案 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个不同的范围。 这些
Web Flow可以将变量存储在多个范围之一中:
流量范围在流量开始时分配,在流量结束时销毁。默认情况下 实现时,存储在流范围中的任何对象都需要是Serializable。
视图状态在状态退出时进入并销毁时分配视图范围。查看范围 只能在视图状态中引用。使用默认实现,存储任何对象 视图范围需要是Serializable。
请求范围在调用流时分配,并在流返回时销毁。
当一个流开始时,Flash范围被分配,在每个视图渲染后被清除,并且当它被销毁时被销毁 流程结束。使用默认实现,存储在闪存范围中的任何对象都必须是可序列化的。
会话范围在顶级流程开始时分配,在顶级流程时销毁 流程结束。对话范围由顶级流及其所有子流共享。默认情况下 实现中,会话范围对象存储在HTTP会话中,并且通常应该是Serializable以考虑典型的会话复制。
要使用的范围通常是在上下文中确定的,例如,取决于定义变量的位置 - 在流程定义(流程范围)的开始,在视图状态(视图范围)内等。在其他情况下, 例如,在EL表达式和Java代码中,需要明确指定它。后续部分 解释如何做到这一点。