Używam Java EE 6 na JBoss EAP 6, a moi JSF fasoli są opatrzone tak: @ManagedBean @ViewScoped (zarówno z pakietu javax.faces.bean)Viewscoped JSF i CDI fasola
jednak są one również ziarnami CDI (domyślny konstruktor, użycie @Inject @ Preadroy itd.). Cały czas czytam, że nie można mieszać tych adnotacji (JSF i CDI), ale najwyraźniej działa dobrze: zastrzyki działają, preDestroy jest wywoływany w widoku zmiany itp.). Czy czegoś brakuje? Jaki jest problem? Dlaczego nie skorzystać?
Dziękuję za odpowiedź. Wydaje się, że jestem naprawdę zdezorientowany tymi wszystkimi rzeczami ... Więc co mam, to fasola zarządzana przez JSF, a nie ziarno CDI? Nawet jeśli ten komponent spełnia wszystkie wymagania, to czy chodzi o dokumentację komponentu CDI (domyślny konstruktor, a nie wewnętrzna klasa itp.)? Jeśli tak, to jaka jest różnica do komponentu bean CDI? jakie są wady lub czego nie mogę zrobić z tym komponentem bean, który mogę zrobić z komponentem CDI? – htft
Nie można "@ Inject" instancji komponentu bean zarządzanego JSF w innym miejscu. Jeśli nie potrzebujesz go, to nie ma wady. Należy jednak zauważyć, że JSF powoli przechodzi na CDI. Nadchodzące adnotacje specyficzne dla JSF, takie jak '@ FlowScoped', są tylko CDI. Funkcja JSF '@ ManagedBean' zostanie wycofana w najbliższej przyszłości. Użytkownicy są zachęcani do przejścia na CDI, zanim to nastąpi. – BalusC