Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java lazy init中的类构造函数_Java_Spring - Fatal编程技术网

Java lazy init中的类构造函数

Java lazy init中的类构造函数,java,spring,Java,Spring,我正在使用lazy init=“true”创建一个bean,但我不希望调用类的构造函数。但不知何故,对于lazyint,它也被调用了 <bean id="abc" class="a.b.c.UtilClass" lazy-init="true" /> 有人能帮我在启动时停止调用类构造函数吗?我希望在需要时调用它。这通常意味着对您的bean有一个依赖关系,该依赖关系也正在被实例化。经典的依赖链是一个必须加载的单例(例如SpringMVC控制器),它引用一个服务bean,然后引用D

我正在使用lazy init=“true”创建一个bean,但我不希望调用类的构造函数。但不知何故,对于lazyint,它也被调用了

<bean id="abc" class="a.b.c.UtilClass" lazy-init="true" />


有人能帮我在启动时停止调用类构造函数吗?我希望在需要时调用它。

这通常意味着对您的bean有一个依赖关系,该依赖关系也正在被实例化。经典的依赖链是一个必须加载的单例(例如SpringMVC控制器),它引用一个服务bean,然后引用DAOBean,因此它们都必须被实例化

@Lazy
Lazy init
bean如果从原型或会话bean中引用,或者从运行时通过
对象工厂创建的bean中引用,则更有用

如果不确定依赖链是如何到达bean的,请尝试在构造函数中设置断点。BeanFactory类的调用堆栈中通常有一些
resolveDependency()
方法(例如
DefaultListableBeanFactory
)。查看其中的
beanName
变量值。

如果不运行其构造函数,就无法创建bean,这是没有意义的(创建bean==实例化其类的新实例,包括执行其构造函数)。但是,您可以使用单例或任何作用域bean反复重用同一个bean实例。