2017-08-24 32 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