Java 弹簧珠工厂装卸 Spring何时可以优雅地卸载Spring容器(XMLBeanFactory) 当应用程序正在运行但BeanFactory的唯一处理程序超出范围时会发生什么情况 装载弹簧容器的理想方式是什么?做handler=newbeanfactory()是正确的方法吗
Java 弹簧珠工厂装卸 Spring何时可以优雅地卸载Spring容器(XMLBeanFactory) 当应用程序正在运行但BeanFactory的唯一处理程序超出范围时会发生什么情况 装载弹簧容器的理想方式是什么?做handler=newbeanfactory()是正确的方法吗,java,spring,ioc-container,Java,Spring,Ioc Container,更新: 当容器超出范围时,我们确实希望调用close()方法,从而释放所有保留的资源。但事实并非如此!我遇到了这样一个例子:我的spring容器超出了作用域,但内存仍然很满(OutOfMemory错误)。原因是我的Spring容器创建的SessionFactory对象从未被垃圾收集,因为它们是作为静态对象创建的。这意味着当容器超出范围时,从未调用close()->destroy()。让我相信弹簧本身存在泄漏问题。BeanFactory是在春天做事的古老方式。实例化Spring上下文的更现代的方法
更新:
当容器超出范围时,我们确实希望调用close()方法,从而释放所有保留的资源。但事实并非如此!我遇到了这样一个例子:我的spring容器超出了作用域,但内存仍然很满(OutOfMemory错误)。原因是我的Spring容器创建的SessionFactory对象从未被垃圾收集,因为它们是作为静态对象创建的。这意味着当容器超出范围时,从未调用
close()->destroy()
。让我相信弹簧本身存在泄漏问题。BeanFactory是在春天做事的古老方式。实例化Spring上下文的更现代的方法是通过ApplicationContext接口。如需参考,请阅读
如果您打算在Web应用程序中使用Spring,请阅读
豆工厂是在春天做事的古老方式。实例化Spring上下文的更现代的方法是通过ApplicationContext接口。如需参考,请阅读 如果您打算在Web应用程序中使用Spring,请阅读
context.close();
对于网络应用程序:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
上下文配置位置
类路径:applicationContext.xml
org.springframework.web.context.ContextLoaderListener
context.close();
对于网络应用程序:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
上下文配置位置
类路径:applicationContext.xml
org.springframework.web.context.ContextLoaderListener
谢谢Matt.(1)和(3)非常有帮助。对于(2),我有一些真正的担忧。请查看更新。如果close()不是终结器的一部分,那么当web应用上下文关闭或JVM关闭时,谁会触发此方法?谢谢Matt.(1)和(3)非常有帮助。对于(2),我有一些真正的顾虑。请查看更新。如果关闭()不是终结器的一部分,那么在web应用程序上下文关闭或JVM关闭时谁触发此方法?BeanFactory并不比ApplicationContext更古老。它们几乎是在同一时间创建的。ApplicationContext是通用BeanFactory的丰富版本,包含消息传递、事件、层次结构和生命周期cles等BeanFactory并不比ApplicationContext更古老。它们几乎是在同一时间创建的。ApplicationContext是通用BeanFactory的丰富版本,包含消息传递、事件、层次结构、生命周期等。