繁体   English   中英

春季启动和释放全球资源

[英]Initialization and release of global resources with spring

在我们的应用程序中,我们通常有一些资源(实用程序)在整个应用程序范围内使用,例如,可能是一个apache HttpClient ,或者在我的情况下是ConcurrencyUtils ,它是一个实用程序类,用于管理cpu密集型任务和io任务的所有线程池(添加一些反应式流的调度程序,等等。。。很多自定义的东西。

现在,当我通过弹簧初始化上下文时,我必须做这样的不自然操作(以便初始化和销毁​​静态资源)

在此处输入图片说明

请注意, ConcurrencyUtil只是一个没有用的伪类,我们从不使用它,但我们使用ConcurrencyUtils静态方法,并且此类仅确保调用了init和destroy(并且我不确定如何确保毕竟调用了destroy豆被摧毁)...

在此处输入图片说明

那么,我们如何在spring上下文创建任何bean之前以及spring context释放所有bean之后(以及将要收回的本身)运行一段代码?

用spring初始化和释放静态资源的正确方法是什么?

这可能工作正常。 您还可以将其放在要扫描Bean的类路径中的一个类中:

@Configuration
public class ConcurrencyConfig {

    @PostConstruct
    public void init(){
        ConcurrencyUtil.init();
    }

    @PreDestroy
    public void destroy(){
        ConcurrencyUtil.destroy();
    }
}

我猜看起来更好一些。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM