Java spring引导-在同一线程上创建和销毁bean
我使用的是一个库,它要求我在同一个线程上初始化和去初始化它,如果我不去初始化它,它将使JVM崩溃。崩溃本身并没有破坏任何东西,只是看起来很难看,但它留下的错误转储可能会很快填满很多空间 目前,代码非常简单:Java spring引导-在同一线程上创建和销毁bean,java,spring,spring-boot,Java,Spring,Spring Boot,我使用的是一个库,它要求我在同一个线程上初始化和去初始化它,如果我不去初始化它,它将使JVM崩溃。崩溃本身并没有破坏任何东西,只是看起来很难看,但它留下的错误转储可能会很快填满很多空间 目前,代码非常简单: @Bean IEEngine()引发异常{ 返回引擎。初始化引擎(sdkLibraryPath,projectId, sdkLicensePath,sdkLicensePassword,“,”,false); } @发情前期 void unloadEngine()引发异常{ 引擎。取消初始化
@Bean
IEEngine()引发异常{
返回引擎。初始化引擎(sdkLibraryPath,projectId,
sdkLicensePath,sdkLicensePassword,“,”,false);
}
@发情前期
void unloadEngine()引发异常{
引擎。取消初始化引擎();
}
我认为您需要将适用的Springbean的范围设置为request
。这个范围将为每个请求创建新的bean,最终将对应于每个线程的bean创建。我可能错了,但我怀疑这个需求是否得到了满足。我建议让您自己的线程专用于此,让它创建引擎,然后让它等待(),直到销毁时间,在销毁引擎的任务中唤醒它。Faik,spring提供了线程范围的bean。这还不够吗?不幸的是,由于这个库,我不能经常创建和销毁它。它是全局初始化的,因此如果两个请求同时出现,其中一个请求将破坏引擎,另一个请求将失败。