Java 在bean生命周期中何时调用setter注入
我曾经读到,对于setter注入,依赖项在需要时才被注入。然而,当我在上面运行一个小测试时,我发现在使用setter注入时,依赖项在应用程序启动时被注入。实际上,在SpringBean生命周期中何时调用setter注入?“依赖项在需要时才被注入”是什么意思Java 在bean生命周期中何时调用setter注入,java,spring,Java,Spring,我曾经读到,对于setter注入,依赖项在需要时才被注入。然而,当我在上面运行一个小测试时,我发现在使用setter注入时,依赖项在应用程序启动时被注入。实际上,在SpringBean生命周期中何时调用setter注入?“依赖项在需要时才被注入”是什么意思 无论您使用字段注入、setter注入或构造函数注入,依赖项总是在bean实例化之后或期间注入 因此,这取决于bean的初始化时间。默认情况下,所有bean都会在启动时进行初始化,这意味着它们的依赖关系也会在启动时被注入 这通常是一种理想的行为
无论您使用字段注入、setter注入或构造函数注入,依赖项总是在bean实例化之后或期间注入 因此,这取决于bean的初始化时间。默认情况下,所有bean都会在启动时进行初始化,这意味着它们的依赖关系也会在启动时被注入 这通常是一种理想的行为,因为它允许您在启动时发现由于bean配置而导致的错误,而不是几个小时甚至几天后 通过将bean注释为
@lazy
,可以将其更改为lazy初始化,直到需要它们为止。因此,如果您希望在访问MainService
之前对其进行延迟初始化(即,其setter注入不会在启动时发生),您必须:
@Service
@Lazy
public class MainService {
}
大体上看一下
@Lazy
注释和spring惰性初始化。
@Service
@Lazy
public class MainService {
}