在Spring参考指南中,它说您可以将@Autowired注释应用于具有任意名称和/或多个参数的方法,如以下代码所示。
public class MovieRecommender {
private MovieCatalog movieCatalog;
private CustomerPreferenceDao customerPreferenceDao;
@Autowired
public void prepare(MovieCatalog movieCatalog,
CustomerPreferenceDao customerPreferenceDao) {
this.movieCatalog = movieCatalog;
this.customerPreferenceDao = customerPreferenceDao;
}
// ...
}
但是Spring容器不会调用prepare()方法,因为它不是setter方法。 @Autowired在这种情况下如何工作?
最佳答案
它并没有说您可以将@Autowired用于任何它所说的方法
Config方法可以具有任意名称和任意数量的参数。这些参数中的每个参数都将与Spring容器中的匹配bean自动连接。
<beans>
<bean id="myBean" class="..." init-method="prepare"/>
</beans>