我正在创建一个带有 lazy-init="true" 的 bean,但我不希望调用类的构造函数。但不知何故,lazy-init 也被调用了。
<bean id="abc" class="a.b.c.UtilClass" lazy-init="true" />
任何人都可以帮我在启动时停止调用类构造函数吗?我希望在需要时调用它。
这通常意味着对正在实例化的 bean 有依赖性。经典的依赖链是一个必须加载的单例(例如 Spring MVC 控制器),它引用服务 bean,然后引用 DAO bean,因此它们都必须被实例化。
@Lazy
或lazy-init
豆类进来更多的有用的,如果他们被引用从原型或会话bean,或在运行时通过创建的Bean ObjectFactory
。
如果不确定依赖链如何到达您的 bean,请尝试在构造函数中放置一个断点。resolveDependency()
在 BeanFactory 类的调用堆栈中通常有一些方法(例如DefaultListableBeanFactory
)。看看beanName
那里的变量值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句