Актуальный бизнес сценарий, где мы используем Prototype scope весной? - PullRequest
0 голосов
/ 10 июля 2019

Я был подготовлен для различных областей применения бобов в Spring.

Каждый раз, когда я создавал бин в xml, я никогда не использовал свойство scope, что означает, что оно было SingleTon. "

Для прототипа я прочитал, что «область действия прототипа предпочтительна для bean-компонентов с состоянием»

Что подразумевается под bean-объектами с состоянием? Может кто-нибудь дать мне пример в реальном времени, где у нас есть область действия прототипа?

1 Ответ

0 голосов
/ 10 июля 2019

Поскольку синглтон является одним экземпляром для всего приложения, и этот объект (я говорю о скороговорке, даже не о весне), если бы имел некоторое состояние для имени примера.Это поле с именем name должно быть хорошо, в то время как только один поток вызывает объект.НО синглтон - это один объект для приложения, как я уже говорил.

Типичный пример весной

@Component
MyComponent{

 private String name;

 public void editName(String newName)
  {
    name=newName
  }

}

КАК МОЖНО СКОРЕЕ более чем один поток вызывает этот компонент, у вас будут условия гонки (вы должны прочитать об этом).Вот почему синглтон не должен иметь состояния, но может иметь другие зависимости (внедрение зависимостей).

Если вы используете область действия прототипа, то Spring создаст один объект для каждого использования, поэтому в примере имя не будет предоставлено в общий доступ, и в нем есть какое-либо условие гонки, это нормально !!

...