在 spring 的 XML 文件中,我们有两个 id 不同但类相同的 bean。它们具有相同的属性。现在我有 InitializingBean 接口,并且在afterPropertySet()中我只是打印属性的值。
它为我打印两次值?
在 spring 的 XML 文件中,我们有两个 id 不同但类相同的 bean。它们具有相同的属性。现在我有 InitializingBean 接口,并且在afterPropertySet()中我只是打印属性的值。
它为我打印两次值?
根据Spring 文档:
在设置所有提供的 bean 属性(并满足 BeanFactoryAware 和 ApplicationContextAware)后由 BeanFactory 调用。
所以你的问题的简短回答是:是的
Spring 不操作类或对象。Spring 操作Bean Entity。它是 Spring IOC 操作的最简单的对象。Bean 有 Spring 引入的额外行为规则。
例如,如果您使用 Singleton 范围创建两个 bean 而不是 Lazy 初始化,则 Spring 会创建您的类的两个实例。
可能您正在调用这个类,同时调用一个测试或像这样启动一个集成测试。检查断点,如果您使用的是 SpringRunner,请尝试模拟组件