在做jms的时候,调用到其他的接口来进行数据库操作。
如果不进行数据库操作的话,jms信息队列都是正常的。但是用的spring注入的接口进行操作的时候,当信息较多的时候,注入的这个接口会变成null。
实在是不明白为什么会这样。
根据jms的原理,每次有消息到达的时候,监听中就会有消费者来操作数据,就会调用接口。当多个数据几乎是同时到达的时候,第一条消息正常调用接口,而其他消息开始调用的时候,这个时候,注入的接口就变成null了。借口这么快就被回收了吗?
无奈,老大决定从context里面取bean,不使用注入了。于是写了一个静态的工具类,去取bean。之前也试过,由于在消息监听中直接取bean,所以每处理一次,就会初始化上下文一次,很麻烦。
这种静态的,使用的时候,也会初始化一下,不过不会被回收掉,这样还好。
关于上面注入的接口对象好像被回收,不知道大神是否知晓具体原理,希望共同探讨。
spring注入是否会被回收
时间: 2024-10-20 08:21:37