Resource leak: 'context' is never closed
from: http://stackoverflow.com/questions/14184059/spring-applicationcontext-resource-leak-context-is-never-closed
Since the app context is a ResourceLoader
(i.e. I/O operations) it consumes resources that need to be freed at some point. It is also an extension of AbstractApplicationContext
which implements Closable
. Thus, it's got a close()
method and can be used in a try-with-resources statement.
try (ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("META-INF/userLibrary.xml")) { service = context.getBean(UserLibrary.class); }
Whether you actually need to create this context is a different question (you linked to it), I'm not gonna comment on that.
It's true that the context is closed implicitly when the application is stopped but that's not good enough. Eclipse is right, you need to take measures to close it manually for other cases in order to avoid classloader leaks.
如果你觉得这篇文章对你有帮助或者使你有所启发,请点击右下角的推荐按钮,谢谢,:)