为什么bean初始化是在setter方法之后完成的?我认为初始化最好在setter方法完成之前完成 - 就像在进行验证以确保将值设置为实例成员之前一样好
为什么beanPostProcessor在具有beforeInitialization方法后会考虑初始化?
0
A
回答
1
从我的理解,制定者等的电话被认为是动作设置bean的初始状态。没有bean集的初始状态,你不能做任何有意义的初始化。试想一下,如果在setter之前完成初始化会发生什么:(假设我们使用setter注入,而不是ctor注入)通过调用默认ctor创建bean,然后调用初始化,然后初始化什么?这个bean只是一个没有正确注入依赖关系的空白对象。如果你可以在这种情况下进行初始化,那么这种初始化可以简单地放在你的ctor中。
对于BeanPostProcessor,我相信“后”不是指后初始化。在创建bean(即创建后)后,您只需要进行后处理即可。由于通常在两个不同的时间进行这种后期处理,这是在bean初始化之前和之后。因此,这两种方法。
0
- 所以初始化可以使用这个bean设置的值。
- 因为这是一个后处理器。
相关问题
- 1. 初始化方法调用
- 2. Guice在初始化对象后调用初始化方法
- 3. 如何调用春代理方法一次初始化
- 4. 由Interface Builder初始化UITableViewCell时调用什么方法?
- 5. 为什么在Javascript调用方法比调用的getter/setter方法
- 6. 春天初始化顺序
- 7. 添加方法调用setter(序列化)
- 8. 超级初始化后的JavaFx调用超级方法
- 9. 如何自动调用按钮的方法初始化后?
- 10. 如何在ruby初始化后立即调用方法?
- 11. 初始化调用deleteLater后立即()
- 12. 为什么我的UIViewController初始化程序从未调用?
- 13. 为什么Swift调用错误的初始化器?
- 14. 调用getter和setter方法
- 15. 为什么调用了uid-getter/setter(ArrayCollection)?
- 16. 子类init方法只调用基础初始化方法
- 17. 如何从初始化方法调用类方法?
- 18. 从ruby初始化调用方法时未定义的方法
- 19. 无法用覆盖初始化方法调用类
- 20. 初始化后无法使用MySqlConnection。为什么?
- 21. Ember.Application中ready方法的用法是什么?在所有视图初始化之后它会被调用吗?
- 22. 春天开机H2数据初始化
- 23. 春天 - 对于Bean初始化
- 24. 春天不进行初始化豆
- 25. 为什么从基类调用方法调用子方法?
- 26. 如何使用getter/setter方法进行延迟初始化?
- 27. 为什么我不能通过setter初始化一个类?
- 28. 无法调用初始化为通用型
- 29. 为什么初始化
- 30. 方法调用后原始局部变量会发生什么?
那么为什么在postProcessor中有一个名为beforeInitialization的方法? beforeInitialization这个词意味着在初始化之前,如果你在它上面添加一个跟踪,这个方法在bean初始化方法 – yapkm01 2013-03-07 02:21:31
@ yapkm01之前被执行了我认为你不清楚后处理器适合bean生命周期的位置,但阿德里安的回答应该有助于明确这一点。 – 2013-03-07 02:50:15