У меня есть простая проблема: я хочу настроить объект по-разному в зависимости от того, создается ли объект в контейнере сервлета или создается ли он в отдельном приложении.
Объект является подключением к базе данных, и я забочусь о настройке тайм-аутов запросов.
Первое решение, которое я могу предложить, это:
if (insideServletContainer(this.getClass().getClassLoader()) {
/// do some servlet specific config
}
else {
/// do some standalone config
}
Вопрос, конечно, в том, могу ли я написать надежный метод, чтобы сказать, был ли класс загружен в контейнере сервлета. В лучшем случае это похоже на взлом.
Второй вариант - предположить, что регистр по умолчанию является автономным экземпляром, установить значения по умолчанию на основе автономной конфигурации и переопределить их в контексте сервлета.
Итак, подытожив мой вопрос: : Вам известен хороший / надежный механизм, если класс был загружен из контейнера сервлета? Если нет, я буду по второму маршруту.
Ник