创建@Scope的新实例时出现IllegalStateException(“session”)

时间:2012-09-05 20:43:03

标签: spring

我曾经在XML中定义了以下bean(它有效!):

<bean id="session"  class="mrpomario.springcore.bean_scopes.beans.SessionBean" scope="session">
<aop:scoped-proxy/>
</bean>

现在我尝试通过Java完成相同的配置:

    @Bean
    @Scope("session")
    @ScopedProxy
    public SessionBean session() {
        return new SessionBean();
    }

我收到以下错误...

java.lang.IllegalStateException: No Scope registered for scope 'session'

...当我调用session()作为另一个bean中的setter的参数时。

为什么会这样,我该如何解决?

1 个答案:

答案 0 :(得分:2)

@ScopedProxy不是Spring的Java配置的一部分。解决方案是in the reference manual - 使用proxyMode注释的@Scope

@Bean
@Scope(value = "session", proxyMode = ScopedProxyMode.TARGET_CLASS)
public SessionBean session() {
    return new SessionBean();
}
相关问题