[英]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.