Spring 默认懒惰初始化似乎不起作用,我看到单例的预实例化



我在 beans 标签内的 spring 上下文文件中定义了 default-lazy-init="true",但是当我启动 tomcat 时,我看到我的 bean 被实例化了。 这是它在日志中显示的内容 -

org.springframework.beans.factory.support.DefaultListableBeanFactory (DefaultListableBeanFactory.java:555) - 在org.springframework.beans.factory.support.DefaultListableBeanFactory@ac6fb1中预实例化单例:定义 bean [dataSource,我在应用程序中的其他 bean.......

我错过了什么吗?

即使一个 Bean 被声明为延迟初始化,如果另一个 Bean 依赖于它,它仍然会被初始化。

我将从您的日志中假设有问题的豆子是dataSource.我还假设您还有其他依赖于dataSource的豆子(否则它不会很有用)。如果上下文初始化其他 bean,并发现,例如,它需要自动连接dataSource Bean,则必须首先初始化它。

如果你想要完全的延迟初始化,你必须让某个对象图中的每个 bean 都被延迟初始化。

最新更新