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