java -eclipse-资源泄漏 : 'appContext' is never closed

标签 java xml eclipse spring applicationcontext

我在 Eclipse 中创建了一个小 bean 类。它在 NetBeans 中工作,但在 Eclipse 中它说

Resource leak: 'appContext' is never closed.

我像这样关闭了它 appContext.close(); 但它不起作用。

//绘图应用程序类

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class drawingapplication {

    public static void main(String[] args) {
        ApplicationContext appContext = new ClassPathXmlApplicationContext("spring.xml");
        Triangle triangle =(Triangle) appContext.getBean("triangle");
        triangle.draw();    
    }
}

//三角形类

package org.spring.javabeans;

public class Triangle {
    public void draw(){
        System.out.println("triangle drawan");
    }
}

//spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN""http://www.springframework.org/dtd/spring-beans-2.0.dtd">

<beans>
    <bean id="triangle" class="org.spring.javabeans.Triangle"/>
</beans>

最佳答案

ClassPathXmlApplicationContextConfigurableApplicationContext 的子类,这意味着它实现了 Closable

ApplicationContext 不扩展 Closeable,因此无法在 ApplicationContext 类型的任何引用上调用 Closable#close() 方法。

但是,Eclipse 检测到您正在分配 ClassPathXmlApplicationContext 类型的值(需要关闭),并警告您应该关闭它,即使您无法通过要分配该值的变量的引用类型。

您需要转换引用值或将其分配给实现Closeable的类型的变量。

ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext("spring.xml");

然后您可以正常调用close()

appContext.close();

关于java -eclipse-资源泄漏 : 'appContext' is never closed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24473102/

相关文章:

java - 在 Java 8 中连接两个或多个 optional 字符串

java - Azure 应用服务中的错误 : java. lang.UnsatisfiedLinkError: failed to load the required native library

java - 如何从 java.net.HttpClient 请求的响应中获取 http 状态消息

xml - jaxb 和 xlink - friend 还是敌人?

eclipse - Eclipse .settings/org.eclipse.wst.common.component 文件规范

java - 我应该使用哪个 Jersey 依赖项?

Eclipse (Kepler) 忽略上下文根

java - 如何在 Visual Studio Code 中禁用 Java 中未使用的导入的警告?

java - Dom4 1.6.1j : XPath that returns non-node type value possible?

xml - 格式化 XSLT 文档