2015-10-14 69 views

回答

2

Provider<T>是JSR-330接口,其是由CDI接口Instance<T>延長。

注入MyBean,當沒有匹配的bean或多個匹配的bean時,您的應用程序將在啓動過程中拋出異常。

注射Instance<MyBean>,豆分辨率被委派到應用程序:您可以遍歷所有候選豆類和select()一個你想要的,或致電isUnsatisfied()並決定何時沒有匹配的bean做什麼。

對於@Dependent範圍豆,調用Instance.get()將創建一個新實例每次調用,你應該調用Instance.destroy(t)爲每個這樣的情況下,當你不再需要它。

Provider只是有get()方法,但沒有destroy()select()並且不支持迭代。在CDI環境中,對於由Provider<T>解決的任何用例,最好使用Instance<T>

相關問題