求问spring基础问题!

山城忙碌人 2013-03-29 10:11:53
application xml配置如下

<bean id="userDao" class="com.text.UserWork"></bean>


ApplicationContext applicatContext = new ClassPathXmlApplicationContext("appxxxxx.xml")

UserWork user = applicatContext.getBean("userDao");

请问这个UserWork的资源什么时候回收,如果不回收,对内在资源占用影响大吗?

...全文
138 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
山城忙碌人 2013-03-29
  • 打赏
  • 举报
回复
引用 2 楼 gu390154333 的回复:
GC回收原则是随线程而生,随线程而灭,线程结束,内存自然回收了。至于不回收也就是所谓内存泄漏,主要是长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周期对象持有它的引用而导致不能被回收。
spring线程是什么时候结束的呢?
dracularking 2013-03-29
  • 打赏
  • 举报
回复
引用 2 楼 gu390154333 的回复:
GC回收原则是随线程而生,随线程而灭,线程结束,内存自然回收了。至于不回收也就是所谓内存泄漏,主要是长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周期对象持有它的引用而导致不能被回收。
如果生命周期结束,就应该被回收了吧?(我觉得生命周期结束应该这样理解吧)
dracularking 2013-03-29
  • 打赏
  • 举报
回复
spring bean一般是以单例形式存在的吧 我们假设spring应用未结束前,bean已结束生命周期被回收,但是假如不禁止再次调用 applicatContext.getBean("userDao"); 该bean还是会被重新创建,因为再次调用的时机不定,所以与其浪费不必要的系统资源再创建,不如不回收bean或者更灵活的方式管理,实在内存不够时就回收一些最不必要存在的bean,like floor 1 said
gu390154333 2013-03-29
  • 打赏
  • 举报
回复
这个和Spring配置无关
gu390154333 2013-03-29
  • 打赏
  • 举报
回复
GC回收原则是随线程而生,随线程而灭,线程结束,内存自然回收了。至于不回收也就是所谓内存泄漏,主要是长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周期对象持有它的引用而导致不能被回收。
huage 2013-03-29
  • 打赏
  • 举报
回复
这个spring应该做了处理的吧,(猜测)比如说以弱引用的方式存储,当内存不足是就将这个对象释放掉,其实Spring应该有一个类似的属性配置吧。

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧