2016-06-20 2 views
1

Я никогда не видел autowired коллекции: методКак Spring Framework autowire коллекции

@Service 
public class SomeFactory { 
    @Autowired 
    private List<Foo> foos; 

    @PostConstruct 
    public void init() { 
     for(Foo foo: foos) { 
      //do something 
     } 
    } 
} 

В Init(), я могу видеть FOOS имеет несколько записей уже. Я думаю, Весна знает, кто должен быть входом foos. Но как? Что делать, если я хочу добавить объект Foo в foos? Нужно ли настраивать файл свойств или любую другую идею?

ответ

1

Spring BeanFactory - это в основном реестр бобов. Эти бобы могут быть объявлены с использованием XML или с использованием @Bean -написанных методов в классе конфигурации или автоматически обнаружены с помощью сканирования пакетов.

Когда вы запрашиваете List<Foo>, Spring находит все бобы, которые имеют тип Foo, создает список, содержащий эти бобы, и вводит этот список.

documentation about Autowired объясняет это, кстати:

Кроме того, можно обеспечить все бобы определенного типа из ApplicationContext путем добавления аннотации к полю или методу, который ожидает массив этого типа