Spring IoC контейнер: Java конфигурация, использование аннотации @Configuration, внедрение зависимостей между компонентами

@Configuration - это аннотация на уровне класса, указывающая, что объект является источником определений bean-компонентов. Классы @Configuration объявляют компоненты с помощью общедоступных аннотированных методов @Bean. Вызовы методов @Bean в классах @Configuration также можно использовать для определения зависимостей между компонентами.

Внедрение зависимостей между компонентами

Когда компоненты имеют зависимости друг от друга, выразить эту зависимость так же просто, как заставить один метод компонента вызывать другой, как показано в следующем примере:

Java

@Configuration
public class AppConfig {

    @Bean
    public BeanOne beanOne() {
        return new BeanOne(beanTwo());
    }

    @Bean
    public BeanTwo beanTwo() {
        return new BeanTwo();
    }
}

Kotlin

@Configuration
class AppConfig {

    @Bean
    fun beanOne() = BeanOne(beanTwo())

    @Bean
    fun beanTwo() = BeanTwo()
}

В примере beanOne получает ссылку на beanTwo через внедрение конструктора.

Этот метод объявления зависимостей между компонентами работает только тогда, когда метод @Bean объявлен в классе @Configuration. Вы не можете объявлять зависимости между компонентами, используя простые классы @Component.


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


Комментарии

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

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

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

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