java - 以 spring bean 作为属性的垃圾收集清理对象

标签 java spring dependency-injection garbage-collection

假设有一个代码

actionService.processAction(new HelloWorldAction("Hello world", helloWorldRepository))

其中 helloWorldRepository 是 Spring bean。

垃圾收集器是否会在某个时候清理该 HelloWorldAction 对象,或者因为该对象引用 helloWorldRepository 它将永远存在于 JVM 中,如果我愿意,最好使用 Wea​​kReference为了避免这种情况?

谢谢。

最佳答案

短生命周期对象拥有对长生命周期对象的引用。这不会造成任何问题:当短期对象不再可访问时,可以对其进行垃圾收集。如果没有任何东西引用它,它很快就会变得无法访问。

如果长生命周期对象保留对短生命周期对象的引用,就会出现问题。那么短命对象就不会被GC。

关于java - 以 spring bean 作为属性的垃圾收集清理对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20972614/

相关文章:

java - java Xpose中的findAndHookMethod代码是错误的。帮助!! (无此类方法错误)

java - 使用 Spring Boot Maven 插件作为构建器,Runnable Jar (JavaFx) 无法找到 log4j2.xml

java - 我需要 XA 交易吗? DefaultMessageListenerContainer 本地事务与 XA 连接工厂

php - PHP 中的依赖注入(inject)

.net - 构造新类型时如何将动态参数传递给 Structuremap?

java - 设置大小不会在 java 中工作

java - 如何在另一个java程序中运行java程序

java - 如何构建反向按位运算

java - spring cloud - 我的 jar 外的 bootstrap.properties

asp.net-mvc - Ninject 绑定(bind)到不同的 Controller