0

只是好奇。

  1. 为什么在setter方法之后进行bean初始化?我认为初始化最好在 setter 方法之前完成 - 比如在将值设置为实例成员之前进行验证以确保它是好的

  2. 为什么 beanPostProcessor 在具有 beforeInitialization 方法时会考虑初始化后?

4

2 回答 2

1
  1. 据我了解,setter 等的调用被认为是设置 bean 初始状态的操作。如果没有 bean 集的初始状态,您将无法进行任何有意义的初始化。试想如果在setter之前进行初始化会发生什么:(假设我们使用的是setter注入,而不是ctor注入) bean是通过调用默认的ctor创建的,然后你调用初始化,那你可以初始化什么?bean 只是一个空白对象,没有正确注入依赖项。如果您可以在这种情况下进行初始化,则可以简单地将这种初始化放入您的 ctor 中。

  2. 对于 BeanPostProcessor,我相信“post”不是指 post-initialize。它只是让您在创建 bean 之后进行后期处理(即后期创建)。因为通常在两个不同的时间进行这种后处理,即在 bean 初始化之前和之后。因此对于这两种方法。

于 2013-03-07T02:47:45.480 回答
0
  1. 所以初始化可以使用 bean 上设置的值。
  2. 因为它是一个处理器。
于 2013-03-07T02:14:39.717 回答