Spring

Как заинжектить коллекцию?


Для инъекции коллекции в Spring Framework вы можете использовать различные подходы в зависимости от конкретной ситуации. Вот несколько примеров: 1. Использование аннотации @Autowired с типом коллекции: Если вы хотите инъецировать коллекцию, вы можете использовать аннотацию @Autowired вместе с типом коллекции, которую вы хотите инъецировать. Пример: @Component public class MyComponent { @Autowired private List<MyObject> myObjects; // остальной код } В этом примере Spring автоматически инъецирует все бины типа MyObject в коллекцию myObjects. 2. Использование аннотации @Autowired с аннотацией @Qualifier: Если у вас есть несколько бинов одного типа и вы хотите инъецировать только определенные бины в коллекцию, вы можете использовать аннотацию @Qualifier для указания идентификатора (имени) бина. Пример: @Component public class MyComponent { @Autowired @Qualifier("myObject1") private List<MyObject> myObjects; // остальной код } В этом примере Spring будет инъецировать только бины с идентификатором "myObject1" в коллекцию myObjects. 3. Использование конструктора или метода-сеттера с параметром типа коллекции: Если вам нужно выполнить более сложную логику при инъекции коллекции, вы можете использовать конструктор или метод-сеттер с параметром типа коллекции и аннотацией @Autowired. Пример с конструктором: @Component public class MyComponent { private List<MyObject> myObjects; @Autowired public MyComponent(List<MyObject> myObjects) { this.myObjects = myObjects; } // остальной код } В этом примере Spring будет инъецировать все бины типа MyObject в коллекцию myObjects через конструктор. Важно убедиться, что у вас есть соответствующие бины, которые будут инъецированы в коллекцию. Также обратите внимание, что тип коллекции должен соответствовать типу бинов, которые вы хотите инъецировать.


Копировать ссылку