Почему вы хотите сделать это специально во время выключения? И вам действительно нужно , чтобы сохранить его (как в "это абсолютно критично?"), Или вы бы хотели бы , чтобы (как в "было бы неплохо, но я буду жить без него «)
Различие важно - независимо от того, какой метод вы используете (сервлет / контекстный прослушиватель, как подсказывают другие ответы, или JVM shutdown hook ), нет никаких гарантий , что он действительно будет прибег.
События уничтожения сервлетного / контекстного прослушивателя будут запускаться только при нормальном (изящном) завершении работы контейнера ИЛИ при перезагрузке приложения. Отключение JVM также будет срабатывать при прерывании процесса; однако, уничтожение процесса (или отключение питания), очевидно, не вызовет ни того, ни другого.