0
我正在重新構建使用Spring的遺留Java應用程序。如何確保一個類只能被Spring實例化?
這包括聲明應用程序類爲Spring beans,然後用context.getBean
或DI
替換所有出現的new
。
我正在重寫應用程序邏輯,使某些類成爲單身人士。但是,由於它們在其他位置使用新的實例化,因此會存在多個副本,這會混淆業務邏輯。 我想確保應用程序在嘗試自行實例化對象時顯式失敗,而不是以不可預知的方式運行和行爲不當。 (我不確定重新分解已經覆蓋了應用程序的100%,但仍然有可能在某個角落潛伏着新的東西)
確保只能通過Spring容器實例化類的最佳方法是什麼? (我希望能避免編寫爲每個類工廠)
你們班是單身人士嗎? – partlov
在「應用程序嘗試自行實例化對象時顯式失敗,而不是以不可預知的方式運行和行爲不當」的情況下,儘管彈簧DI容器管理您的對象生命週期,但在urs系統內跟蹤兩個以上的實例的類是不可能的。當對象在彈簧DI的範圍之外創建時,您必須手動管理它。 –