也許我的問題是微不足道的,但我從來沒有使用過應用程序作用域bean。我需要應用程序bean,因爲我必須耗時處理數據庫上的事務。 我的搜索並沒有滿足我的好奇心。 我不知道爲什麼,但我沒有設法初始化bean(它是空的)或它的應用程序崩潰。 所以我有一個應用範圍豆JSF應用程序作用域實例化和注入
@ManagedBean(eager=true)
@ApplicationScoped
public class ApplicationContainer {
...
}
急於=真我看了,告訴JSF應用程序服務器(我用的GlassFish)開始時每次啓動豆。
我讀了幾個地方,我只需要把這個註釋和bean初始化。 對我來說,不... 後,我看了,如果我想應用程序Bean注入到另一個bean我不得不使用@PostConstuct註釋
@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();
}
這給在我注入其他bean的錯誤TestsBean進入...
- 如果應用程序bean在服務器啓動時被初始化,它會在應用程序bean的主體中調用它來執行它所需的操作?或者在注入的bean中,它是在post構造方法中完成的?
請告訴我處理應用程序bean的正確方法。我真的很困惑...
謝謝大家的時間!
謝謝BalusC您充足的答案。 我沒有把我的例外放在這個問題上,因爲我想成爲一個普遍的問題,而不是一個具體的問題。 我認爲應用程序範圍bean需要一個更具體的,不同的初始化他們休息,我還沒有找到一個適當的初始化,只是零零星星。 再次感謝您的時間! – CyberGriZzly