只是好奇。
为什么在setter方法之后进行bean初始化?我认为初始化最好在 setter 方法之前完成 - 比如在将值设置为实例成员之前进行验证以确保它是好的
为什么 beanPostProcessor 在具有 beforeInitialization 方法时会考虑初始化后?
只是好奇。
为什么在setter方法之后进行bean初始化?我认为初始化最好在 setter 方法之前完成 - 比如在将值设置为实例成员之前进行验证以确保它是好的
为什么 beanPostProcessor 在具有 beforeInitialization 方法时会考虑初始化后?
据我了解,setter 等的调用被认为是设置 bean 初始状态的操作。如果没有 bean 集的初始状态,您将无法进行任何有意义的初始化。试想如果在setter之前进行初始化会发生什么:(假设我们使用的是setter注入,而不是ctor注入) bean是通过调用默认的ctor创建的,然后你调用初始化,那你可以初始化什么?bean 只是一个空白对象,没有正确注入依赖项。如果您可以在这种情况下进行初始化,则可以简单地将这种初始化放入您的 ctor 中。
对于 BeanPostProcessor,我相信“post”不是指 post-initialize。它只是让您在创建 bean 之后进行后期处理(即后期创建)。因为通常在两个不同的时间进行这种后处理,即在 bean 初始化之前和之后。因此对于这两种方法。