20
有没有@Named
CDI bean的默认范围,没有附加@...Scoped
注释?我在official Weld documentation中没有找到任何相关信息。命名CDI bean的默认范围是什么?
A @Named
bean可以通过JSF访问而无需附加注释,因此可能会出现一些隐式范围。
谢谢
有没有@Named
CDI bean的默认范围,没有附加@...Scoped
注释?我在official Weld documentation中没有找到任何相关信息。命名CDI bean的默认范围是什么?
A @Named
bean可以通过JSF访问而无需附加注释,因此可能会出现一些隐式范围。
谢谢
默认范围是依赖伪范围@Dependent
,如weld documentation说:
CDI采用了所谓的依赖伪范围。这是未明确声明范围类型的bean的默认 范围。 从属bean的实例永远不会在不同的客户端或不同的注入点之间共享。它严格地是某个其他对象的依赖对象 。当它所属的对象被创建时,它被实例化,并且当它所属的对象被销毁时被销毁 。
的javadoc for this annotation提供有关此范围内的一些详细信息:带范围内声明
豆类@Dependent表现不同,以豆 其他内置范围类型。当bean被声明为具有作用域 @依赖:
- 没有在多个注入点之间共享bean的注入实例。
- 注入到容器创建的对象中的任何bean实例都绑定到新创建的对象的生命周期。
- 当计算JSF或JSP页面中通过EL名称引用bean的统一EL表达式时,实例化至多一个 bean的实例。此实例仅用于服务于EL表达式的一个单独的 评估。如果bean EL名称
在EL表达式中出现多次,但在再次评估EL表达式时或者在评估另一个EL表达式
时决不会重新使用。- 接收生产者方法,生产者字段,处置者方法或观察者方法调用的bean的任何实例都存在
仅调用的服务。- 注入处理器方法或观察器方法的方法参数中的bean的任何实例均存在,仅用于调用方法
。
谢谢,马特。完全错过了1.0文档中的部分。我的错。 – kostja 2012-04-24 07:56:04
没问题!很高兴听到它帮助! – 2012-04-24 08:17:11