如何解决有没有办法定义 cdi 销毁实例的顺序?
我正在开发一个应用程序,其中注入了一些服务。一旦应用程序关闭,我想定义一个调用我的 destroy() 函数的顺序。
例如,“服务 A 需要在服务 B 之前关闭”。
有没有办法做这样的事情?
解决方法
假设您有两个对象,A
和 B
,它们彼此没有关系,例如在 @Singleton
范围内(只是一个任意范围)。据我所知,当它们的生产 Bean
的 destroy()
方法将被调用时,没有明确的顺序:可以先销毁 A
或可以先销毁 B
。
假设现在你有这三个对象:
-
A
在@Singleton
范围内(同样是任意范围) -
B
在@Dependent
范围内,注入到A
-
C
在@Dependent
范围内,注入到B
在这种情况下,再次假设我们讨论的是自定义 bean 而不是托管 bean,C
将首先被销毁,然后是 B
,然后是 A
。
据我所知,这是规范提供的唯一订购保证。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。