我曾经在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的参数时。
为什么会这样,我该如何解决?
答案 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();
}