Создание экземпляров JSF bean-компонентов: созданы ли экземпляры только bean-компонентов, на которые есть ссылки в представлении?

Я предполагаю, что если у меня есть 6 bean-компонентов с запросом, создаются экземпляры только тех, на которые ссылается текущее представление (например, с помощью #{foo.bar}). Верно ли это предположение? В этом случае единственным созданным bean-компонентом будет foo, а не foo2, foo3 и т. д., которые также находятся в области запроса или области видимости и т. д.

Это происходит как с CDI @Named, так и с @ManagedBean bean-компонентами jSF?


person arg20    schedule 09.04.2011    source источник


Ответы (1)


Да, это правильно.

Вы можете проверить это, зарегистрировав сообщение/добавив точку останова в конструкторе всех bean-компонентов.

person Bozho    schedule 09.04.2011
comment
Верно, но я бы рекомендовал использовать хук жизненного цикла @PostConstruct вместо конструктора, потому что спецификация требует, чтобы сервер приложений вызывал этот метод (при вызове конструктора не делается никаких предположений) - person jan groth; 10.04.2011
comment
@jan Groth согласился. Ради тестирования это не имело бы большого значения, но в остальном - всегда предпочитаю постконструкцию. - person Bozho; 10.04.2011