Синглтон - Spring Bean, почему бы не потокобезопасный

Я понимаю, что Object Creation и Thread safety это разные вещи.

Singleton — это способ создания объекта, некий шаблон проектирования, которому мы следуем при создании объекта.

Spring Bean. Используя область Singleton, мы гарантируем, что будет только 1 экземпляр, но все же Spring bean не является потокобезопасным.. почему..??


person Ankur Singhal    schedule 30.06.2015    source источник


Ответы (1)


Не может быть потокобезопасным именно потому, что создается только один экземпляр, поэтому каждый запрос (поток) будет использовать один и тот же экземпляр, поэтому могут возникнуть проблемы с параллелизмом.

Если, например, ваша область действия является прототипом, Spring не будет использовать синглтон, а затем создаст экземпляр для каждого вызова getClass.

То же самое для запроса или сеанса, экземпляр будет создан по запросу или для сеанса пользователя.

Как правило, используйте область прототипа для всех bean-компонентов с полным состоянием и область singleton для bean-компонентов без состояния.

вы можете прочитать в документации, как это работает

http://www.tutorialspoint.com/spring/spring_bean_scopes.htm

person paul    schedule 30.06.2015