2017-08-24 33 views
1

當我沒有關閉點火器時,SonarQube分析提高了阻滯器。我使用Spring的Web應用程序的緩存,並試圖訪問它是這樣的:當我不關閉點火器時,聲納引發了一個阻滯器問題對​​象

Ignite ignite = Ignition.getOrStart(igniteConf); 

如果我關閉finally對象,我不能夠在應用程序再次重複使用它無需初始化和填充再次,我不想要(因爲高速緩存有我想要在應用程序中使用的數據)。有沒有辦法避免或解決這個問題?

+0

您是否嘗試讓Ignite實例成爲Spring bean? – Denis

+0

@Denis。對不起,你是什麼意思?我的點燃配置是spring context xml的一部分。我在這裏要做的是在Java代碼中獲取相同緩存的實例並對其執行一些額外的操作。 – Arpit

+0

@Denis好的。我有你的問題。是的,點燃的實例是一個Spring bean。 – Arpit

回答

1

我會在這裏更詳細地複製評論的答案。

爲了讓Sonar開心,您可以創建一個與Ignite實例相對應的Spring bean,並在您的使用地點自動裝載它。它實際上等同於使用Ignition,因此您也可以忽略該警告。

通常您不必擔心關閉Ignite,因爲它遵循「讓它崩潰」的原則。

+0

謝謝,解決了我的問題 – Arpit

0

聲納在這裏提出了一個問題,警告你,這個實例最有可能在某個地方關閉。

如果您通知了此警告,但您得出的結論是您已採取所有必要措施,只需在SonarQube中將此問題關閉爲「無法修復」或選擇其他選項之一即可解決此問題。

+0

我正在使用Spring應用程序上下文來初始化Ignite緩存。在代碼中的這一點上,我得到了相同的實例並執行任務。 Spring應用程序上下文是否關閉緩存實例(是,我會忽略該警告),還是應該顯式關閉它? – Arpit