簡體   English   中英

Play 框架編譯時依賴注入和單例

[英]Play framework compile-time dependency injection and singleton

我一直在重構我的 Play 應用程序,從使用 Guice 到使用編譯時 DI。

在 Guice 中,當我們不使用@Singleton裝飾一個類時,可以根據需要創建許多實例。

在編譯時DI中,我們創建了一個注入一次的實例,因此我認為它相當於一個單例。

我的問題是,如果將所有內容都限制為一個實例,我是否會失去任何性能。 例如,如果我有一個實例serviceA ,使用方法doSomething ,並考慮到一切都是無狀態的。 如果我有一個 32 核 CPU,並且有很多請求進來。在編譯時 DI 的上下文中,Play 是否能夠利用 CPU 的全部容量?

AFAiK Guice(和其他運行時 DI 框架)在默認情況下不會產生單例,唯一的原因是在創建實例和簡化復雜(潛在循環)依賴圖時更快。 他們的目標是更快地開始。

無論您有 1 個還是 2 個ServiceA實例,一旦創建這些實例,都不會影響使用它們的性能。

從理論上講,擁有單身人士會更好。

暫無
暫無

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

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