Контейнер IOC создает объект при развертывании проекта? - PullRequest
1 голос
/ 23 августа 2010

Как контейнер IOC помогает поддерживать объекты, создавая их один раз и вводя при необходимости ???

Ответы [ 2 ]

1 голос
/ 23 августа 2010

Прочитайте ссылку на источник о Области применения бобов и о Ленивая инициализация :

По умолчанию ApplicationContext реализации охотно создавать и настроить все компоненты Singleton как часть процесса инициализации. Как правило, эта предварительная реализация желательно, потому что ошибки в конфигурация или окружение среда обнаружены немедленно, в отличие от часов или даже дни спустя. Когда это поведение не желательно, можно помешать предварительная реализация синглтон-бина пометив определение бина как отложенная инициализация. Ленивый инициализированный bean сообщает контейнеру IoC создать экземпляр бина, когда он первый запрашивается, а не при запуске.

В XML это поведение контролируется атрибут lazy-init на элемент; например:

<bean id="lazy" class="com.foo.ExpensiveToCreateBean" lazy-init="true"/>

<bean name="not.lazy" class="com.foo.AnotherBean"/>
0 голосов
/ 23 августа 2010

Это зависит от того, как вы настроили конкретную зависимость, вы можете иметь синглтон, на запрос, http и т. Д. Жизненные циклы

...