Provider<T>是由CDI接口扩展的JSR-330接口
Instance<T>。
注入时
MyBean,如果没有匹配的bean或一个以上的匹配bean,应用程序将在启动期间引发异常。
注入
Instance<MyBean>,Bean解析委托给应用程序:您可以遍历所有候选Bean和
select()想要或调用的候选Bean,并在
isUnsatisfied()没有匹配的Bean时决定要做什么。
对于具有
@Dependent作用域的bean
,调用
Instance.get()将为每次调用创建一个新实例,并且
Instance.destroy(t)在不再需要它时应为每个此类实例调用。
Provider仅有
get()方法,但没有
destroy()或
select()并且不支持迭代。在CDI环境中,对于所解决的任何用例
Provider<T>,最好使用
Instance<T>。



