我有一个带有@RequestScope
的bean,当我将它注入我的一个单身时,它被注入一个单独而不是一个请求范围。但是,如果我将@RequestScope
更改为@Scope( value = "request", scopeName = "request", proxyMode = ScopedProxyMode.TARGET_CLASS)
,Spring会将bean创建为请求范围,并将它们正确地注入单例。
我阅读了Spring关于此的文档:
JSR-330默认范围就像Spring的原型。但是,为了使其与Spring的一般默认值保持一致,默认情况下,Spring容器中声明的JSR-330 bean是一个单例。为了使用除单例之外的范围,您应该使用Spring的@Scope注释。 javax.inject还提供了@Scope注释。然而,这个仅用于创建自己的注释。
这是否意味着Spring真正忽略了@RequestScoped
?是否有任何提供者/解析器可以解决Spring的这个问题?我希望尽可能使用@RequestScoped
注释而不是@Scope
注释spring,因为我们只需要使用JSR注释
答案 0 :(得分:1)
正如M. Deinum所提到的,Spring并不支持@RequestScoped
开箱即用。我必须创建一个ScopeMetadataResolver
来将@RequestScoped
转换为Spring @Scope
我在这里提到我的自定义解析器: