在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>

10-07 19:25