0

有人可以解释 Spring xml 配置文件中 bean 的初始化顺序吗?在某些情况下,它似乎取决于订单,但我找不到任何表明这一点的文件。使用单个配置文件时,bean 顺序似乎是独立的。但是,如果在父配置中覆盖 bean,则顺序可能很重要。我需要做额外的测试来确认究竟是什么情况导致了这个失败。我正在使用 Spring 3.0.5 并使用配置文件通过模拟实现覆盖我的生产代码中的 bean。bean 被自动装配到服务中,并且模拟对象是需要覆盖的原因。对此的任何见解将不胜感激。

4

1 回答 1

0

顺序有时很重要,我可以想到这些情况:

  1. 稍后定义的具有完全相同名称的 bean 会覆盖之前定义的 bean - 因此,如果您有一些 bean 的模拟,只需在核心应用程序 bean 加载后定义它。
  2. BeanFactoryPostProcessors 和 BeanPostProcessors 基于它们的定义位置或基于order属性(如果存在)进行处理。
  3. AOP 建议是根据order属性执行的。

第一点似乎涵盖了您的情况,但我只是为了完整性指定了其他人,但其他 SO 用户可以添加的内容肯定更多。

于 2012-06-19T00:37:26.137 回答