Краткий ответ на этот вопрос - нет. Я не знаю ни одного сервера приложений, который бы так себя вел. Однако есть несколько вещей, на которые следует обратить внимание. Ниже приводится упрощенное объяснение:
Когда ваш сервер приложений (т.е. JBoss w / Tomcat) запускается, он загружает некоторые классы в загрузчик классов, который будет использоваться всеми приложениями. Когда оно развертывает ваше приложение, оно загружает эти классы в свой собственный загрузчик классов. Когда вы удаляете приложение, загрузчик классов и все его классы будут собираться мусором. Поэтому, когда приложение будет повторно развернуто, все ваши классы будут перезагружены, и ваши синглтоны будут восстановлены.
После повторного развертывания ваше приложение будет (по крайней мере, теоретически) вести себя так же, как и после перезапуска JVM / сервера приложений.
Просто последний совет: если вы хотите использовать шаблон Singleton в своем корпоративном Java-приложении, убедитесь, что вы знаете ограничения одноэлементных объектов в среде сервера приложений. Например, вы можете столкнуться с проблемами, если хотите кластеризовать свое приложение.