Kotlin 允許定義單例物件。在 Spring 或 CDI 等依賴注入 (DI) 框架中,bean 的生命周期可以定義為單例。因此,將 Kotlin 物件宣告為 DI 容器中使用的 bean 似乎是明智的。
是否確實可以宣告一個 Kotlin 物件,例如,作為 e Spring @Component
?如果不是,為什么不呢?
uj5u.com熱心網友回復:
好吧,它似乎作業正常(我不明白為什么它不起作用)。
話雖如此,我認為“單例”實際上是“單例”的定義對于 kotlin 和 Spring 并不相同。object 似乎在 1-per-ClassLoader 的基礎上定義了單例,其中 spring 的“單例”在 1-per-ApplicationContext 的基礎上進行。
大多數應用程式可能每個只使用 1 個,因此看起來是相同的,但是如果您的應用程式使用 ClassLoader 或 ApplicationContext 中的兩個或多個,它似乎最終會變得一團糟。
我的問題是:“你希望通過使用物件而不是類來獲得什么?” 我真的看不出任何優勢(但我可能錯了),因此偏離每個人都使用的約定似乎是個壞主意。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/470364.html