2013-10-27 4 views
-1

на основе того, что я читал на ресурсах линии, как прототип @lazy, так и scope создают бин по требованию, в отличие от области по умолчанию, которая является singleton. Итак, когда целесообразно использовать @lazy вместо прототипа, наоборот или использовать их вместе при определении класса?В чем разница между @lazy и @Scope («прототип») весной

Заранее спасибо.

ответ

0

Lazy: bean инициализируется только при ссылках, но может быть использован повторно.

Прототип: каждое использование компонента получает новый экземпляр.

Lazy поэтому менее ресурсоемкий.

+1

Примечание «, что это не имеет смысла для прототипа бобов - они не могут быть охотно инициализированы, так что нет необходимости отмечать они ленивы ». http://stackoverflow.com/questions/2365677/creating-lazily-initialized-spring-beans-using-annotation-based-configuration – SaudiD3mon

+0

Большое спасибо за ответ, который имеет смысл сейчас – user1999453

1

@ Lazy не является областью применения. Чтобы ответить на ваш вопрос, вам сначала нужно понять взаимосвязь между областью действия и конкретизацией.

Singletons (область по умолчанию) создаются один раз для каждого контейнера (например, при запуске для webapp). Прототипы создаются один раз для инъекций (каждый раз, когда класс получает бит).

@ Lazy сообщает Spring, что не хочет создавать бобы. Для синглтонов это означает, что он не будет создан при запуске, а будет создан после того, как он будет введен в первый раз. Это не влияет на прототип, поскольку они не создаются до тех пор, пока они не будут введены.

Таким образом, @Lazy применим только к одиночным. Если ленивый синглтон вводится не-ленивым синглэном (который создается при запуске), то @Lazy ничего не делает эффективно.

Примечание: @Lazy может также влиять на другие области, такие как запрос, сеанс и т. Д. Возможно, вы используете прокси-сервер для тех, кто будет технически контролировать фактический объем/лень.

Для получения дополнительной информации о сфере применения, см Spring в документации:

http://docs.spring.io/spring/docs/3.0.0.M3/reference/html/ch04s04.html

Смежные вопросы