簡體   English   中英

如何編寫未明確創建對象的Guice Provider?

[英]How do I write a Guice Provider that doesn't explicitly create objects?

假設我有一個ClassWithManyDependencies。 我想為這個類編寫一個Guice Provider,以便在我的程序中多次創建一個類的新實例(另一個類將依賴於這個Provider並在幾個點使用它來創建新實例)。

實現此目的的一種方法是讓Provider依賴於ClassWithManyDependencies的所有依賴項。 這很難看。

有沒有更好的方法來實現這一目標?

注意 - 我當然不希望Provider依賴注入器。 我考慮的另一個選擇是讓ClassWithManyDependencies和ClassWithManyDependenciesProvider擴展相同的基類,但它很難看。

正如郵件列表中所提到的,無論你在哪里注入ClassWithManyDependencies都可以簡單地注入Provider<ClassWithManyDependencies> ,而不需要自己編寫任何特殊內容。 Guice為你做這件事。

除了與其他框架集成之外,您不必編寫提供程序。

只是不要在范圍SINGLETON和想要構建許多實例的類中綁定ClassWithManyDependencies,而不是注入ClassWithManyDependencies實例,而是注入了Provider。 (Guice可以為每個綁定類免費提供)

在這個提供者上你可以調用get(),如果不在范圍SINGLETON中,它每次都會創建一個全新的實例。

現在,如果您遇到一些棘手的情況,ClassWithManyDependencies依賴於某些GUICE IOC和一些構造函數參數,那么您應該選擇Assisted Injections

暫無
暫無

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

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