У меня есть перечисление, которое я ввожу в область применения, например
public void contextInitialized(ServletContextEvent sce) {
sce.getServletContext().setAttribute("app", ApplicationProperty.INSTANCE);
}
Мой вопрос: мне нужно развернуть это веб-приложение дважды с разными файлами свойств. Это вызовет проблему, так как я использую перечисление, будут ли они иметь одни и те же значения? Благодарю.
Приложение развертывается дважды с различными путями контекста и файлами свойств (думайте как secretKey = 12923, а другое имеет secretKey = 48984 в файле свойств). Первый экземпляр развертывает его как /ForInternalUse и другое развертывание /ForExternalUse. Оба развертывания находятся под одним и тем же сервером веб-приложений (Glassfish).
PS. Я сделал небольшой тест на стеклянную рыбку 3.1, но, похоже, свойства не разделяются. Второе развертывание не влияет на первое развертывание.
Эти два развертывания не будут иметь одного и того же enum
- они сохраняются отдельно, если вы специально не разделяете объекты между ними.
Причина в том, что enum
уникально только для загрузчика классов, который загружает его - он не является уникальным JVM-wide. Веб-серверы предоставляют каждому контексту свой собственный загрузчик классов.
См. Здесь, как, если вы хотите поделиться.