有没有办法定义 cdi 销毁实例的顺序?
Is there a way of defining the order by which cdi is going to destroy instances?
我正在开发一个应用程序,其中注入了一些服务。应用程序关闭后,我想定义调用 destroy() 函数的顺序。
例如,“服务 A 需要在服务 B 之前关闭”。
有没有办法做这样的事情?
假设您有两个对象,A
和 B
,彼此之间没有任何关系,例如,在 @Singleton
范围内(只是一个任意范围)。据我所知,当他们的生产 Bean
s' destroy()
方法被调用时没有明确的顺序:A
可以首先被销毁,或者 B
可以首先被销毁。
假设现在您拥有这三个对象:
A
在 @Singleton
范围内(同样,任意范围)
B
在 @Dependent
范围内,注入到 A
C
在 @Dependent
范围内,注入到 B
在这种情况下,再次假设我们谈论的是自定义 bean 而不是托管 bean,C
将首先被销毁,然后是 B
,然后是 A
.
据我所知,这是规范提供的唯一订购保证。
我正在开发一个应用程序,其中注入了一些服务。应用程序关闭后,我想定义调用 destroy() 函数的顺序。
例如,“服务 A 需要在服务 B 之前关闭”。
有没有办法做这样的事情?
假设您有两个对象,A
和 B
,彼此之间没有任何关系,例如,在 @Singleton
范围内(只是一个任意范围)。据我所知,当他们的生产 Bean
s' destroy()
方法被调用时没有明确的顺序:A
可以首先被销毁,或者 B
可以首先被销毁。
假设现在您拥有这三个对象:
A
在@Singleton
范围内(同样,任意范围)B
在@Dependent
范围内,注入到A
C
在@Dependent
范围内,注入到B
在这种情况下,再次假设我们谈论的是自定义 bean 而不是托管 bean,C
将首先被销毁,然后是 B
,然后是 A
.
据我所知,这是规范提供的唯一订购保证。