Я конвертирую синглтон в bean-компонент Spring, поэтому, если синглтон не удается инициализировать, то весь контекст Spring всего веб-приложения загружается неправильно.
Преимущество того, что контекст Spring не загружается должным образом, состоит в том, что люди заметят и исправят конфигурацию во время самого развертывания. В отличие от синглтона 'non-spring bean': когда это вызывает исключение во время инициализации, никто не замечает ... пока реальный пользователь не пожалуется на отсутствие функциональности.
Мои изменения работают должным образом ... но я не уверен, что я делаю правильно.
t загрузить правильно. Преимущество создания Spring ...
Я конвертирую синглтон в bean-компонент Spring, поэтому, если синглтон не удается инициализировать, то весь контекст Spring всего веб-приложения загружается неправильно.
Преимущество того, что контекст Spring не загружается должным образом, заключается в том, что люди заметят и исправят конфигурацию во время самого развертывания. В отличие от синглтона 'non-spring bean': когда это вызывает исключение во время инициализации, никто не замечает ... пока реальный пользователь не пожалуется на отсутствие функциональности.
Мои изменения работают должным образом ... но я не уверен, что я делаю правильно.
t загрузить правильно. Преимущество создания Spring ...
Я конвертирую синглтон в bean-компонент Spring, поэтому, если синглтон не удается инициализировать, то весь контекст Spring всего веб-приложения загружается неправильно.
Преимущество того, что контекст Spring не загружается должным образом, состоит в том, что люди заметят и исправят конфигурацию во время самого развертывания. В отличие от синглтона 'non-spring bean': когда это вызывает исключение во время инициализации, никто не замечает ... пока реальный пользователь не пожалуется на недостающую функциональность.
Мои изменения работают должным образом ... но я не уверен, что я делаю правильно.
контекст Spring не загружается должным образом.
Преимущество того, что контекст Spring не загружается должным образом, заключается в том, что люди заметят и исправят конфигурацию во время самого развертывания. В отличие от синглтона 'non-spring bean': когда это вызывает исключение во время инициализации, никто не замечает ... пока реальный пользователь не пожалуется на недостающую функциональность.
Мои изменения работают должным образом ... но я не уверен, что я делаю правильно.
контекст Spring не загружается должным образом.
Преимущество того, что контекст Spring не загружается должным образом, состоит в том, что люди заметят и исправят конфигурацию во время самого развертывания. В отличие от синглтона 'non-spring bean': когда это вызывает исключение во время инициализации, никто не замечает ... пока реальный пользователь не пожалуется на недостающую функциональность.
Мои изменения работают должным образом ... но я не уверен, что я делаю правильно.
Есть какие-нибудь мысли?
Код выглядит так:
public class MySingleton {
private static MySingleton INSTANCE = null;
private MySingleton(){}
public static MySingleton getInstance(){
if(INSTANCE == null){
synchronized(MySingleton.class){
if(INSTANCE == null){
try{
doWork()
}catch(Exception e){
throw new IllegalStateException("xyz", e);
}
INSTANCE = new MySingleton();
}
}
}
return INSTANCE;
}
private static void doWork() {
// do some work
}
}
А в Spring config xml компонент будет определен как:
Примечание: По большей части это похоже на стратегию, обсуждаемую в этой статье: http://springtips.blogspot.com/2007/06/configuration-hell-remedy-with.html
Классы, которые используют этот синглтон, сами по себе не являются Spring beans .. они это просто не весенние pojos, которые я не могу преобразовать в весну. Они должны полагаться на метод getInstance () для получения синглтона.
Редактировать 2: (копирование комментария, сделанного мной ниже, в этот раздел описания) Я пытаюсь решить две задачи:
Я решил сделать этот класс одноэлементным ... и не делаю его весенним компонентом. Если ему не удастся инициализировать, он что-то запишет в файл журнала ... надеюсь, человек, выполняющий развертывание, заметит ... Я отказался от подхода, о котором упоминал ранее, потому что я чувствую, что это создаст кошмар обслуживания в будущем, поэтому мне пришлось выберите между - singleton - или - spring bean. Я выбрал синглтон.