簡體   English   中英

Spring Controller 不被視為單例

[英]Spring Controller not treated as singleton

我們一直在診斷 Spring Boot 應用程序中明顯的內存泄漏。 我們無法在我們的代碼中找到任何突出的東西,但是使用 VisualVM 的內存分析器,我們發現了一些奇怪的東西。 當控制器被請求擊中時,會創建該控制器的一個新實例。 如下所述,這些控制器應該是單例的。 此外,這些多余的實例永遠不會被垃圾收集並不斷堆積。 這些控制器在代碼中的任何地方都沒有被引用,並且只由首先創建它的 Spring 魔法創建。

所以我的問題是:什么會導致這樣的 Spring 組件開始像這樣運行,我將如何調試它?

以下是類的注釋。

@Slf4j
@Validated
@RestController
@RequestMapping("profile")
public class ProfileController {
    ...
}

問題是間歇性的。 重新啟動它運行的計算機后,問題消失了。

對於那些想知道的人來說,問題的根源原來是線程泄漏。

暫無
暫無

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

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