Является ли создание прототипов компонентов Spring быстрее, чем создание синглетонов?

Создается ли прототип bean-компонента контейнером spring быстрее, чем singleton-бин? Сколько если да?

Может быть, какая-то предыстория вопроса. Предположим, что у нас есть определение контекста, которое содержит множество определений bean-компонентов. И приложение представляет собой «короткую задачу». Интересно, могу ли я ускорить создание контекста, определив все bean-компоненты как прототипы, потому что в этом случае не имеет значения, являются ли они синглтонами или нет.


person Łukasz Rzeszotarski    schedule 23.10.2013    source источник
comment
Я мог бы предположить, что для их создания требуется одинаковое количество времени, но в целом компонент области видимости singleton будет извлекаться каждый раз, когда он запрашивается из контекста приложения, в то время как bean-компонент prototype необходимо будет создавать каждый раз, когда он запрашивается из контекста приложения.   -  person nicholas.hauschild    schedule 23.10.2013


Ответы (1)


Два подхода полностью различаются по количеству создаваемых бобов.

  • Если у bean-компонента есть scope="prototype", это означает, что новый экземпляр bean-компонента будет создаваться каждый раз, когда вы запрашиваете bean-компонент с соответствующим id.

  • Если у bean-компонента не установлен атрибут scope, это означает, что при первой загрузке контекста будет создан один экземпляр, который будет использоваться совместно.

Я считаю, что время, затраченное на создание прототипа и одноэлементных компонентов, очень близко (если не одинаково).

person Konstantin Yovkov    schedule 23.10.2013
comment
Да, я знаю, в чем разница между прототипом и синглтоном. Вопрос во времени. Компоненты Singleton полностью управляются контейнером IOC, поэтому мне интересно, занимает ли процесс создания синглтона больше времени. - person Łukasz Rzeszotarski; 23.10.2013
comment
Я думаю, что они оба повторно используют одно и то же создание исходного кода bean-компонента. - person Konstantin Yovkov; 23.10.2013