Понимание Spring @Autowired использования
Я читаю справочную документацию по Spring 3.0.x, чтобы понять аннотацию Spring Autowired:
Я не могу понять приведенные ниже примеры. Нужно ли что-то делать в XML, чтобы это работало?
Пример 1
public class SimpleMovieLister {
private MovieFinder movieFinder;
@Autowired
public void setMovieFinder(MovieFinder movieFinder) {
this.movieFinder = movieFinder;
}
// ...
}
Пример 2
public class MovieRecommender {
private MovieCatalog movieCatalog;
private CustomerPreferenceDao customerPreferenceDao;
@Autowired
public void prepare(MovieCatalog movieCatalog,
CustomerPreferenceDao customerPreferenceDao) {
this.movieCatalog = movieCatalog;
this.customerPreferenceDao = customerPreferenceDao;
}
// ...
}
Как можно автоматически связать два класса, реализуя один и тот же интерфейс и используя один и тот же класс?
Пример:
class Red implements Color
class Blue implements Color
class myMainClass{
@Autowired
private Color color;
draw(){
color.design();
}
}
Какой метод проектирования будет называться? Как сделать так, чтобы вызывался метод дизайна класса Red, а не Blue?