Spring IoC контейнер: зависимости и конфигурация в деталях, внутренние бины

Элемент <bean/> внутри элементов <property/> или <constructor-arg/> определяет внутренний компонент, как показано в следующем примере:

<bean id="outer" class="...">
    <!-- instead of using a reference to a target bean, simply define the target bean inline -->
    <property name="target">
        <bean class="com.example.Person"> <!-- это внутренний бин -->
            <property name="name" value="Fiona Apple"/>
            <property name="age" value="25"/>
        </bean>
    </property>
</bean>

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

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


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


Комментарии

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

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

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

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