2012-04-24 62 views

回答

34

默认范围是依赖伪范围@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的任何实例均存在,仅用于调用方法
+0

谢谢,马特。完全错过了1.0文档中的部分。我的错。 – kostja 2012-04-24 07:56:04

+0

没问题!很高兴听到它帮助! – 2012-04-24 08:17:11