Spring IoC контейнер: Java конфигурация, настройка имен, псевдонимов, описаний бинов
Настройка именования бинов
По умолчанию классы конфигурации используют имя метода @Bean в качестве имени полученного компонента. Однако эту функцию можно переопределить атрибутом name, как показано в следующем примере:
Java
@Configuration
public class AppConfig {
@Bean(name = "myThing")
public Thing thing() {
return new Thing();
}
}
Kotlin
@Configuration
class AppConfig {
@Bean("myThing")
fun thing() = Thing()
}
Псевдонимы бинов
Иногда желательно дать одному бину несколько имен, иначе называемых псевдонимами бинов (bean aliasing). Атрибут name аннотации @Bean принимает массив String для этой цели. В следующем примере показано, как установить ряд псевдонимов для компонента:
Java
@Configuration
public class AppConfig {
@Bean({"dataSource", "subsystemA-dataSource", "subsystemB-dataSource"})
public DataSource dataSource() {
// создать экземпляр,
// сконфигурировать и вернуть bean-компонент DataSource...
}
}
Kotlin
@Configuration
class AppConfig {
@Bean("dataSource", "subsystemA-dataSource", "subsystemB-dataSource")
fun dataSource(): DataSource {
// создать экземпляр,
// сконфигурировать и вернуть bean-компонент DataSource...
}
}
Описание бина
Иногда полезно предоставить более подробное текстовое описание компонента. Это может быть особенно полезно, когда бины выставляются (возможно, через JMX) для целей мониторинга.
Чтобы добавить описание в @Bean, вы можете использовать аннотацию @Description, как показано в следующем примере:
Java
@Configuration
public class AppConfig {
@Bean
@Description("Предоставляет базовый пример компонента")
public Thing thing() {
return new Thing();
}
}
Kotlin
@Configuration
class AppConfig {
@Bean
@Description("Предоставляет базовый пример компонента")
fun thing() = Thing()
}
Читайте также:
- Spring IoC контейнер: Java конфигурация, использование аннотации @Bean, получение обратных вызовов жизненного цикла
- Spring IoC контейнер: Java конфигурация, использование аннотации @Bean, зависимости бина
- Spring IoC контейнер: Java конфигурация, указание Scope бинов
Комментарии
Отправить комментарий