不多逼逼,直接看注解上面的文檔,
@PostConsturct
PostConstruct注釋用於需要執行的方法在依賴注入完成后執行任何初始化。這個方法必須在類投入服務之前調用。
這個所有支持依賴關系的類都必須支持注解。即使調用帶有PostConstruct注釋的方法如果類不請求注入任何資源。
方法只能加@PostConstruct一個注解(如果配合其他注解,可能發生二次調用的情況)。
使用該@PostConstruct注解的方法必須滿足以下所有條件:
1.@PostConstruct被用作攔截器的方法(PS:除了用作攔截器器得方法之外,被改注解修飾的方法不得具有任何參數)
該方法得簽名如下:
void <METHOD>(InvocationContext)
Object <METHOD>(InvocationContext) throws Exception
PostConstruct攔截器方法一定不能引發應用程序異常,但是如果除生命周期事件之外,相同的攔截器方法還插在業務或超時方法上,則可以聲明它引發被檢查的異常,包括java.lang.Exception。如果PostConstruct攔截器方法返回一個值,則容器會將其忽略。
2.@PostConstruct未被用作攔截器的方法
該方法的簽名如下:
void <METHOD>(InvocationContext)
該方法的訪問修飾符可以為 public, protected,private or private.
該方法不能是靜態的
該方法可以是被final修飾的
如果該方法拋出未經檢查的異常,則該類不得放入服務中,除非是EJB可以處理異常甚至從異常中恢復的EJB。