使用javax注释在spring中创建会话范围bean

使用javax注释在spring中创建会话范围bean,java,spring,javax-inject,Java,Spring,Javax Inject,我正在使用Spring4和javax注释(JSR-330)。在马文 <dependency> <groupId>javax.inject</groupId> <artifactId>javax.inject</artifactId> <version>1</version> </dependency> javax.inject 我

我正在使用Spring4和javax注释(JSR-330)。在马文

     <dependency>
        <groupId>javax.inject</groupId>
        <artifactId>javax.inject</artifactId>
        <version>1</version>
    </dependency>

javax.inject

我的问题是,我不能在带有javax注释的会话范围中使用bean,所以我使用了
@Named
和spring
@scope
org.springframework.context.annotation.scope

我可以使用javax注释创建会话范围bean吗

根据和,
JSR 330
不支持
request
会话
开箱即用。您必须创建自己的注释 为了这个

让我们看看,如何对请求范围执行此操作

创建自己的范围注释:

@Scope
@Documented
@Retention(RUNTIME)
public @interface Request {
}
扩展Jsr330ScopeMetadataResolver以将注释映射到Spring的作用域:

public class CustomScopeMetadataResolver extends Jsr330ScopeMetadataResolver {

  public Jsr330SpringScopeMetadataResolver() {
    registerScope(Request.class.getName(), WebApplicationContext.SCOPE_REQUEST);
  }

}
在Spring配置中使用自定义解析器:

<context:component-scan base-package="my.package"
  scope-resolver="my.resolver.package.CustomScopeMetadataResolver" />


参考学分:

您必须使用注释:
@SessionScoped

例如:

@SessionScoped
public class DukesBday{
...
}

请检查我的答案。希望它能达到目的<代码>会话范围
是spring注释的一部分