Это в основном связано с проблемами синхронизации, которые необходимо сохранять в натуральном выражении при использовании одноэлементных компонентов в многопоточной среде.С прототипом bean-компонентов каждый поток получит новый экземпляр bean-компонента, поэтому вам не нужно заботиться о синхронизации доступа к состоянию bean-компонента между потоками.
В большинстве случаев вы не столкнетесь с необходимостью использования bean-компонентов с состояниемпоскольку состояние обеспечивается отдельным уровнем персистентности или непосредственно самим вызывающим абонентом.
Одним из примеров одноэлементных компонентов, имеющих состояние, являются кэши.Используя выделенные библиотеки кеша, такие как infinispan, guava, hazlecast, ... вам не нужно беспокоиться о синхронизации здесь, так как этот аспект обрабатывается этими библиотеками для вас.
Учитывая ваш банковский пример, вывероятно, не хотите хранить детали транзакции в основном хранилище, таком как куча Java.Если по какой-либо причине произойдет сбой вашего приложения, вся эта информация будет безвозвратно потеряна.Эта информация должна храниться в постоянном хранилище, таком как база данных.