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.
Читайте также:
- Spring IoC контейнер: Java конфигурация, настройка имен, псевдонимов, описаний бинов
- Spring IoC контейнер: Java конфигурация, использование аннотации @Bean, зависимости бина
- Spring IoC контейнер: Java конфигурация, указание Scope бинов
Комментарии
Отправить комментарий