[英]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.