2
У меня есть ресурс singleton, который создает объекты в его конструкторе, и когда приложение завершается, и сервер завершается, мне нужно освободить эти объекты. Как это делается в Джерси 2?Ресурс нуждается в очистке для Джерси 2
@Path("/")
@Singleton
public class MyResource {
private Map<String, MyObject> cache;
public MyResource() {
cache = new ConcurrentHashMap<>();
// at some point I need to remove all entries
// from the map and close all MyObject objects there
//
// the reason is because MyObject might have files open
// and I need to close the files
//
// where can I do that?
}
...
}
Вы должны быть более конкретными, что «в какой-то момент». В точке /, которая/точка? Весь жизненный цикл, управляемый контейнером, состоит в том, что эти точки определены и становятся элементами конфигурации. Вызов метода «release/очистить сейчас» вручную полностью нарушает всю идею. – BadZen
Спасибо. Я отредактирую вопрос. – akonsu
(Также, как правило, вы, вероятно, не хотите, чтобы жизненные циклы, управляемые контейнерами, были открытыми/закрывающими файлами. Это не то, для чего нужен CDI.) – BadZen