关闭Spring ApplicationContext

Sco*_*pio 4 java spring

当我创建一个新的Spring ApplicationContext时,例如via

final ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfiguration.class);
Run Code Online (Sandbox Code Playgroud)

Eclipse(STS 3.2.0)将其标记为潜在的资源泄漏,抱怨它永远不会关闭('资源泄漏:'ac'永远不会关闭).

到现在为止还挺好.然后我试图寻找到这个问题,并没有能够找到一个close()shutdown()或类似的方法,即使可以让我关闭ApplicationContext.这是一个Eclipse警告是乱七八糟的,有意设计还是我错过了什么?

zag*_*gyi 5

您声明acApplicationContext不定义一个close()方法.而不是使用任何超类型的AnnotationConfigApplicationContext扩展Closeable(例如ConfigurableApplicationContext)提供close()释放所有资源所需的方法.


mkd*_*dev 5

如果使用Java 7,则可以使用try-with-resources语句为您完成工作

try (AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(...))
{
  ...
}
Run Code Online (Sandbox Code Playgroud)