繁体   English   中英

在JSF中获取@ManagedBean的范围

[英]Get scope of a @ManagedBean in JSF

我目前正在入侵一个基类被许多bean扩展的项目。

在此基类上有一个通用方法,基本上,我唯一需要做的更改是检查特定调用是否失败,当前调用该方法的实例是应用程序范围的Bean。 如果是这样,我只需要记录错误消息并返回一个缓存的响应即可。 如果不是,我必须提出一个例外。

APPART使用instanceof根据每个应用范围的扩展这个基类豆,有没有办法知道如果对象this是一个应用范围的bean?

您可以检查某些实例的类是否具有特定的注释。 例如,调用:

Annotation[] annotations = this.getClass().getAnnotations();

将为您提供当前实例的所有注释。 或者您可能想找出一些特定的注释:

ApplicationScoped annotation = this.getClass().getAnnotation(ApplicationScoped.class);

如果未使用@ApplicationScoped注释类,则它将返回null

在继承的情况下,方法getAnnotations()也会返回父类的注释,并且使用@RequestScoped类注释的方法也将返回@ApplicationScoped如果其父类已声明)。 另一方面,JSF管理的bean将覆盖父级的作用域。

希望这对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM