我有两个豆子。两者都有@PreDestroy方法。其中一个bean必须在他的@PreDestroy中调用第二个,而第二个是活着的。我怎么能这样做?
我将提供更详细的问题描述。 在我的应用程序关闭时,我必须释放一些资源(令牌)。但是一旦我得到这些代币的数量不明,我就有了
所以在上下文关闭之前,我想从存储库中获取所有令牌并使用我服务中的网关释放它们。
答案 0 :(得分:0)
Spring尝试以与创建它们相反的顺序销毁bean,因此您可以尝试利用它。
话虽如此,除非有人提出一些非常特殊的理由,否则我会反对。我相信有一种更好的方法可以做你想做的事情,而不依赖于你没有直接控制的事情。
如果你提供了更多关于你想要实现的目标的背景,我们可以提供更多帮助。
答案 1 :(得分:-1)
理论上你可以像下面的代码一样调用它:
@PreDestroy
private void destroy() {
// injection by context goes here
}
但这不是正确的做法。在你的第一个物体被摧毁的那一刻,第二个物体的参考也会被摧毁。
如果您提供有关您正在尝试的更多详细信息,我们可以帮助您。