Junior — Middle
Може ли да се реализира патърнът Singleton по няколко начина в рамките на Spring Framework?
sobes.tech AI
Отговор от AI
В Spring Framework паттерн Singleton реализуется по умолчанию для бинов, так как scope по умолчанию — singleton. Но можно реализовать Singleton несколькими способами:
- Использование Spring Bean с скоупом singleton (по умолчанию):
@Component
public class MySingletonBean {
// Spring гарантирует единственный экземпляр
}
- Реализация классического паттерна Singleton с приватным конструктором и статическим методом:
public class MySingleton {
private static final MySingleton INSTANCE = new MySingleton();
private MySingleton() {}
public static MySingleton getInstance() {
return INSTANCE;
}
}
- Использование enum для Singleton:
public enum MySingletonEnum {
INSTANCE;
// методы
}
В контексте Spring чаще всего достаточно объявить бин с скоупом singleton, но если нужен классический Singleton вне Spring, можно использовать другие способы.