0
在方法中,我可能需要生成一个下载bean来获取文件。由于我并行接收这些电话,我只想下载一次该文件。我不知道要表达JEE/CDI下面的伪代码的正确方法:在方法中创建bean的多个实例
if (download_required) {
monitor.enter();
if (!map.ContainsKey(downloadPath))
{
//CDI inject new instance of downloader here.
downloader.File = downloadPath;
downloader.startDownload();
map.put(downloadPath, downloader);
monitor.exit();
downloader.waitForDownload();
} else {
monitor.exit();
map.get(downloadPath).waitForDownload();
}
}
我想,因为我需要从JNDI变量下载器设置属性使用CDI。每个下载器负责下载文件并保留一些状态。请注意,每个下载器将被赋予不同的状态,因此必须是该bean的新实例。
就在我放弃CDI之前,将变量注入到父类中,然后使用标准java和一些静态来实例化上述内容,是否有一种“正确”的方式来实现CDI?
所以实例<>保证每次都是一个新的实例,并且将保持在范围内,直到给定的方法完成它为止? – Spence