Prawdopodobnie moje pytanie jest trywialne, ale nigdy wcześniej nie użyłem komponentu bean aplikacji. Potrzebuję komponentu bean aplikacji, ponieważ muszę wykonywać czasochłonne transakcje w bazie danych. moje poszukiwania wcale nie zaspokoiły mojej ciekawości. Nie wiem dlaczego, ale nie udało mi się zainicjować komponentu bean (ma on wartość null) lub aplikacja się zawiesiła. Więc mam Bean zakres aplikacjiTworzenie i wstrzykiwanie zakresu zastosowania JSF
@ManagedBean(eager=true)
@ApplicationScoped
public class ApplicationContainer {
...
}
chętny = true Czytałem, że mówi JSF zainicjować fasoli za każdym razem, gdy serwer aplikacji (Używam GlassFish) jest uruchomiona.
W kilku miejscach przeczytałem, że muszę po prostu wstawić tę adnotację, a komponent bean zostanie zainicjowany. Dla mnie to nie ma ... Po Czytałem, że jeśli chcę, aby wstrzyknąć fasoli aplikacji do innej fasoli muszę używać @PostConstuct Adnotacja
@ManagedBean
@SessionScoped
public class TestsBean implements Serializable {
private static final long serialVersionUID = 1L;
@ManagedProperty(value = "#{container}")
private ApplicationContainer container;
@PostConstruct
public void init() {
container.contructContainer();
}
To daje błąd w drugiej fasoli że wstrzyknąć testBean do ...
- czy komponent bean aplikacji zostanie zainicjowany, gdy serwer uruchomi metodę, która wywołuje w treści komponentu bean aplikacji, aby wykonać wymagane czynności? Czy w wstrzykniętym fasolku jest to zrobione metodą post-konstruktu?
Podaj mi prawidłowy sposób obsługi fasoli aplikacji. Naprawdę zdezorientowany ...
Dziękuję wszystkim za poświęcony czas!
dziękuję BalusC dla Twojego wystarczająca odpowiedź. Nie odstąpiłem od mojego wyjątku, ponieważ chciałem być pytaniem ogólnym, a nie konkretnym. Pomyślałem, że fasola zakresu aplikacji potrzebuje bardziej specyficznej, innej inicjalizacji niż reszta i nie znalazłem właściwej inicjalizacji, tylko bity i kawałki. Jeszcze raz dziękuję za poświęcony czas! – CyberGriZzly