簡體   English   中英

托管bean中的@PostConstruct方法

[英]@PostConstruct method in a managed bean

@PostConstruct方法中使用這種類型的代碼行:

listA = myService.getMylist();

因此,如果我們在托管bean(JEE應用程序)的@PostConstruct方法中使用此方法,那么您會給我什么建議:

  • 使用try catch塊。
  • 不要在@PostConstruct方法中使用這種類型的代碼行。

因為當我測試我的應用程序時,我的數據庫已滿,但是當我交付它時,數據庫必須為空,而要更新de DB的管理員。 所以當然會有一些例外。

在幾乎所有情況下,最佳實踐是在沒有元素的情況下初始化一個空集合,而不僅僅是引用將其指向null。 因此,如果您正在設計服務層,則不要返回空集合-而是返回空集合。 同樣,如果這是您設計的必要條件,則列表不能為空(這意味着它是不可接受的條件),則必須拋出錯誤以指示無效條件並停止Bean的初始化。

這實際上取決於您的設置。 只要處理任何異常,兩者中的任何一種都是合適的。 可以簡單地在每個項目的List上進行迭代,如果沒有項目(或為null),則對該對象不執行任何操作。 如果這是一個實際的錯誤狀態,沒有任何項目可返回(即,沒有該項目,頁面將無法運行),則引發異常。

也許最好在從數據庫中獲取數據的代碼中拋出異常(例如,在服務方法中,而不是DAO中,或者具有任何等效代碼)? 這樣,您就可以從托管bean中刪除功能,並可以在您的框架中對其進行處理。 或者,對於List集合更合適,只需確保在返回之前實例化它即可。 (即List<Object> listA = new ArrayList<Object>; ...*populate list* .... return listA; )然后,當您進行迭代時,將不會調用任何內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM