2015-12-02 2 views
1

Предположим, что я список некоторых бобов инъекционного:Список заказа инъекции в Spring IoC контейнер

@Autowired 
List<SomeBean> beans; 

Что по умолчанию порядок инъекции в этой ситуации?

Я знаю об интерфейсе Ordered и @Order аннотация, я прошу только о поведении по умолчанию.

Что я заметил, что в случае ручной регистрации боба:

context.register(SomeBeanA.class); 
context.register(SomeBeanB.class); 
context.register(SomeBeanC.class); 

This бобы впрыскивается в том же порядке, как я зарегистрировал их: 1 элемент в списке SomeBeanA, 2 - SomeBeanB, 3 - SomeBeanC.

Есть ли утечки на это поведение? Я имею в виду, могу ли я быть уверен, что это не изменится в дальнейшем выпуске?

Спасибо.

ответ

0

Если вы хотите гарантировать, что заказ в автопродатом, я бы воспользовался интерфейсом заказа или аннотацией.

Фактически список упорядочен в любом случае, и каждый компонент, не объявляющий явный порядок, переходит к порядку по умолчанию. (Который мин целое число по умолчанию, если я не ошибаюсь)

Взгляните на этот класс: https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/core/annotation/AnnotationAwareOrderComparator.html

+0

Да, но я задаюсь вопросом о поведении по умолчанию. Итак, если по умолчанию все бобы имеют один и тот же порядок (Integer.MAX не min BTW), то как он их сортирует? – Dmytro

Смежные вопросы