| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > отличие class от ManagedBean |
| Автор: 4epT 1.10.2010, 11:37 | ||
| Добрый день! В чем отличие class от managedBean ? вот допустим я пишу bean который будет складывать 2 числа
в чем отличие будет если не указать эти аннотации? использую JSF 2.0 P.S. И если можно объясните разницу (что можно делать и что нельзя делать) между SessionScoped, ApplicationScoped, CustomScoped, RequestScoped, NoneScoped, ViewCsoped =) |
| Автор: jk1 1.10.2010, 11:45 | ||
|
| Автор: SlavaSemushin 2.10.2010, 20:29 | ||||||
Ниже моё понимание вещей, без претензий на истину. Исходя из названия managed bean это бин (который в свою очередь простой класс), который кем-то управляется. В данном случае управляется он JSF. Т.е. согласно конфигу, или аннотациями, JSF создаёт и удаляет его для вас -- т.е. следит за его временем жизни. Это, в моём понимании, и есть managed. Тут, к месту, также упомнять IoC container и вообще IoC (DI) (см. в википедии или гугле).
У вас две аннотации сейчас: @ManagedBean и @SessionScoped. Если не указывать обе, то получится простой класс (т.н. POJO). Если указать, только @ManagedBean, то JSF создаст для вас этот бин с временем жизни по умолчанию (насколько помню, это request) А вот если указать только @SessionScoped, хм, не знаю точно, что будет, наверное, ошибка -- проверьте, если хотите.
ApplicationScoped -- бин "живёт" на протяжении жизни всего вашего приложения (т.е. как только вы запустили контекст, этот бин создаётся, а при уничтожении контекста, бин тоже уничтожается.) CustomScoped -- не помню точно, но там программисту дали какую-то свободу по управлению времени жизни бином (лучше всего в гугле поискать) RequestScoped -- время жизни бина -- один запрос NoneScoped -- не помню точно, но где-то на SO (http://stackoverflow.com/questions/3086896/what-is-none-scope-bean-and-when-to-use-it) был вопрос зачем он нужен, и, кажется, никто ничего не смог придумать ViewScoped -- опять же, точно не подскажу, но кажется существует только внутри отображения (view) А есть ещё flash scope, кстати, это на уровне двух страниц при использовании то ли редиректа,то ли форвардинга, точно не помню. Опять же в гугле лучше поискать Надеюсь, что мой ответ был полезен. |
| Автор: 4epT 2.10.2010, 22:23 | ||||||||
Спасибо большое) очень понятно объяснил!) |
| Автор: SlavaSemushin 3.10.2010, 17:45 |
| P.S. Я когда JSF изучал, то насобирал для себя разных ссылок -- http://freesource.info/wiki/devel/Java/JSF/links Возможно, вам пригодится (по JSF2 очень интересная серия статей JSF2 Fu на IBM-е). |
| Автор: 4epT 3.10.2010, 22:08 | ||
Спасибо, почитаю)) |