在我们的应用程序中,我们通常有一些在应用程序范围内使用的资源(实用程序),例如可能是 apache HttpClient
,或者在我的情况下ConcurrencyUtils
,它是一个实用程序类,用于管理所有线程池以用于cpu
密集和io
任务(添加一些调度程序用于反应流等......很多自定义的东西)。
现在,当我通过 spring 初始化我的上下文时,我必须做一些不自然的事情(为了初始化和销毁静态资源)
请注意,这ConcurrencyUtil
只是一个没有用的假类,我们从不使用它,但我们使用静态方法,ConcurrencyUtils
并且这个类只确保调用 init 和 destroy (我不知道如何确保在所有 bean 之后调用destroy销毁)...
那么我们如何在 spring 上下文创建任何 bean 之前和 spring 上下文释放其所有 bean 之后运行一段代码(并且本身即将被回收)?
用spring初始化和释放静态资源的正确方法是什么?