Spring IoC контейнер: зависимости, исключение бинов из автопривязки

Для каждого компонента вы можете исключить компонент из автопривязки. В XML-формате Spring установите для атрибута autowire-candidate элемента <bean/> значение false. Контейнер делает это конкретное определение компонента недоступным для инфраструктуры автопривязки (включая конфигурации стиля аннотации, такие как @Autowired).

Атрибут autowire-candidate предназначен для воздействия только на автопривязку на основе типов. Это не влияет на явные ссылки по имени, которые разрешаются, даже если указанный компонент не помечен как кандидат для автопривязки. Как следствие, автопривязка по имени тем не менее внедряет компонент, если имя совпадает.

Вы также можете ограничить число кандидатов на автопривязку, основываясь на сопоставлении с шаблоном по отношению к именам компонентов. Элемент верхнего уровня <beans/> принимает один или несколько шаблонов в своем атрибуте default-autowire-candidates. Например, чтобы ограничить статус кандидата автопривязки любым компонентом, имя которого заканчивается на Repository, укажите значение *Repository. Чтобы предоставить несколько шаблонов, определите их в списке через запятую. Явное значение true или false для атрибута autowire-candidate определения компонента всегда имеет приоритет. Для таких компонентов правила сопоставления с шаблоном не применяются.

Эти методы полезны для bean-компонентов, которые вы никогда не хотите вводить в другие bean-компоненты с помощью автопривязки. Это не означает, что исключенный компонент не может быть сам конфигурирован с помощью автопривязки. Скорее, бин сам по себе не является кандидатом для автопривязки других бинов.


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки