使用javax注释在spring中创建会话范围bean
我正在使用Spring4和javax注释(JSR-330)。在马文使用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 我
<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注释的一部分