0

在我们所有的应用程序集成测试中,我们使用以下手动自动装配:

context = new ClassPathXmlApplicationContext(getConfigLocations());
context.getAutowireCapableBeanFactory().autowireBeanProperties(this, getAutowireMode(), true);

这样,所需的 Spring bean 就会自动注入到测试类(this)中。

这很好用,但是在我的一个测试类中,我已经将我的类设置为 InitializingBean。当我在我的 bean 中以这种方式自动装配时,该afterPropertiesSet()方法永远不会被触发,而在调试中我看到所有属性都被正确设置。

有人可以解释我为什么吗?

4

1 回答 1

2

autowireBeanProperties()仅自动装配属性,它不执行其他初始化步骤。

您可以使用其他方法AutowireCapableBeanFactory来执行完全初始化,例如initializeBean(). autowireMode但是,在这种情况下,您似乎无法通过 。autowireMode所以,如果你真的需要 custom (即如果你不在@Autowired你的 bean 中使用),目前还不清楚如何解决这个问题。

于 2012-09-14T11:06:33.213 回答