Spring default-lazy-init, похоже, не работает, я вижу Предварительное создание экземпляров синглетонов

Я определяю default-lazy-init="true" в файле контекста spring внутри тега bean-компонентов, но когда я запускаю tomcat, я вижу, что мои bean-компоненты создаются. вот что показывает в логе -

org.springframework.beans.factory.support.DefaultListableBeanFactory (DefaultListableBeanFactory.java:555) — предварительное создание экземпляров синглетонов в org.springframework.beans.factory.support.DefaultListableBeanFactory@ac6fb1: определение bean-компонентов [dataSource, мои другие bean-компоненты в приложении.. .....

Я что-то пропустил ?


person Amit    schedule 02.03.2014    source источник
comment
Опубликуйте полную трассировку стека или журнал. Опубликуйте свой контекст.   -  person Sotirios Delimanolis    schedule 02.03.2014


Ответы (1)


Даже если компонент объявлен как лениво инициализированный, он все равно будет инициализирован, если от него зависит другой компонент.

Я собираюсь предположить из вашего журнала, что речь идет о компоненте dataSource. Я также предполагаю, что у вас есть другие bean-компоненты, зависящие от dataSource (иначе это было бы не очень полезно). Если контекст инициализирует другие bean-компоненты и обнаруживает, что, например, ему необходимо автоматически связать bean-компонент dataSource, ему придется сначала инициализировать его.

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

person Sotirios Delimanolis    schedule 02.03.2014
comment
Спасибо за ваш ответ, у меня более 100 других bean-компонентов (контроллеры, сервисы, дао), которые инициализируются одновременно. можете ли вы объяснить немного больше о том, как заставить каждый компонент в некотором графе объектов быть лениво инициализированным.. - person Amit; 03.03.2014
comment
@amit Скажите, что ваш bean-компонент lazy-init — это A. A — это инъекционная зависимость для B. Если вы запросите B у ApplicationContext, он инициализирует B (если это еще не сделано) и, из-за зависимости, также инициализирует A. - person Sotirios Delimanolis; 03.03.2014
comment
Я рассмотрел аспект взаимозависимости, но большинство из них - нет. они являются частью различных функций/модулей. Есть еще идеи кроме этой? - person Amit; 03.03.2014
comment
@Amit Если вы не дадите нам пример (в идеале он должен быть небольшим и воспроизводимым), мы можем только догадываться. Мое лучшее предположение - это то, что я выразил выше. - person Sotirios Delimanolis; 03.03.2014