2012-04-24 3 views
20

Есть ли какая-либо область по умолчанию для компонента CDI @Named без дополнительных @...Scoped аннотаций? Я не нашел никакой соответствующей информации в official Weld documentation.Какова область по умолчанию для Именованного компонента CDI?

A @Named bean доступен через JSF без дополнительных аннотаций, поэтому некоторые неявные области видимы.

Спасибо

ответ

34

область видимости по умолчанию является зависимой псевдо-сфера @Dependent, как указано в weld documentation:

CDI особенности так называемого зависимого псевдо-сферы. Это область по умолчанию для компонента, который явно не объявляет тип области. [...] Экземпляр зависимого компонента никогда не делится между разными клиентами или разными точками впрыска. Это строго зависимый объект другого объекта. Он создается, когда объект, которому принадлежит , создается и уничтожается, когда объект, которому он принадлежит, является уничтожен.

javadoc for this annotation дает более подробной информацию об этой области:

Фасоли объявленной с размахом @Dependent ведут себя по-разному к бобам с других встроенными типами области видимости. Когда фасоль объявляется развернётся @Dependent:

  • Нет впрыскивается экземпляр бина либо разделяется между несколькими точками впрыска.
  • Любой экземпляр компонента, введенного в объект, который создается контейнером, привязан к жизненному циклу созданного объекта
    .
  • Когда оценивается единое выражение EL на странице JSF или JSP, которая ссылается на компонент по его имени EL, создается не более одного экземпляра компонента . Этот экземпляр существует, чтобы обслуживать только одну оценку выражения EL. Он повторно используется, если имя EL компонента
    появляется несколько раз в EL-выражении, но никогда не используется повторно, когда выражение EL оценивается снова или когда вычисляется другое выражение EL
    .
  • Любой экземпляр компонента, который получает метод производителя, поле производителя, метод удаления или метод вызова наблюдателя, существует в
    услуге, которая предназначена только для вызова.
  • Любой экземпляр компонента, введенного в параметры метода метода удаления или метода наблюдателя, существует для обслуживания только метода вызова
    .
+0

Thank you, Matt. Полностью пропустили часть в документах 1.0. Виноват. – kostja

+0

Без проблем! Приятно слышать, что это помогло! –

Смежные вопросы