Недавно я работал со стандартными задачами с использованием Spring Boot и столкнулся с неожиданным поведением.
У меня есть конфигурации аннотаций с аннотациями @Bean, и мне нужно зарегистрировать один из двух bean-компонентов, если присутствует определенное свойство. Кроме того, мне нужно внедрить созданный компонент в другие компоненты под указанным именем компонента. Я попытался сделать это следующим образом:
@Bean("bean-1")
//Specific conditional on property
fun s1() = "1"
@Bean("bean-1")
//Specific conditional on property
fun s2() = "2"
@Bean
fun result(
@Qualifier("bean-1") b: String
): Any? {
return null
}
Но я получил неожиданный для меня результат. Это работает. Spring не подвел, однако я определил 2 bean-компонента одного типа и даже с одним и тем же именем. Спринг проигнорировал конфликт. Я пошел дальше и добавил следующие условия:
@Bean("bean-1")
@ConditionalOnMissingBean(name = ["bean-1"])
fun s1() = "1"
@Bean("bean-1")
@ConditionalOnProperty(name = ["some_property"], matchIfMissing = true)
fun s2() = "2"
@Bean
fun result(
@Qualifier("bean-1") b: String
): Any? {
return null
}
Это тоже работает, но Spring игнорирует создание bean-компонента в методе s2!
Помогите, пожалуйста, это ожидаемое поведение Spring Boot?
Я использую Spring Boot 3.3.5.
Пример копирования:
@Bean("bean-1")
@ConditionalOnMissingBean(name = ["bean-1"])
fun s1() = "1"
@Bean("bean-1")
@ConditionalOnProperty(name = ["some_property"], matchIfMissing = true)
fun s2() = "2"
@Bean
fun result(
@Qualifier("bean-1") b: String
): Any? {
return null
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... re-defined
Spring Boot не дает сбоя, если определены два одинаковых bean-компонента ⇐ JAVA
Программисты JAVA общаются здесь
1733324902
Anonymous
Недавно я работал со стандартными задачами с использованием Spring Boot и столкнулся с неожиданным поведением.
У меня есть конфигурации аннотаций с аннотациями @Bean, и мне нужно зарегистрировать один из двух bean-компонентов, если присутствует определенное свойство. Кроме того, мне нужно внедрить созданный компонент в другие компоненты под указанным именем компонента. Я попытался сделать это следующим образом:
@Bean("bean-1")
//Specific conditional on property
fun s1() = "1"
@Bean("bean-1")
//Specific conditional on property
fun s2() = "2"
@Bean
fun result(
@Qualifier("bean-1") b: String
): Any? {
return null
}
Но я получил неожиданный для меня результат. Это работает. Spring не подвел, однако я определил 2 bean-компонента одного типа и даже с одним и тем же именем. Спринг проигнорировал конфликт. Я пошел дальше и добавил следующие условия:
@Bean("bean-1")
@ConditionalOnMissingBean(name = ["bean-1"])
fun s1() = "1"
@Bean("bean-1")
@ConditionalOnProperty(name = ["some_property"], matchIfMissing = true)
fun s2() = "2"
@Bean
fun result(
@Qualifier("bean-1") b: String
): Any? {
return null
}
Это тоже работает, но Spring игнорирует создание bean-компонента в методе [b]s2[/b]!
Помогите, пожалуйста, это ожидаемое поведение Spring Boot?
Я использую Spring Boot 3.3.5.
Пример копирования:
@Bean("bean-1")
@ConditionalOnMissingBean(name = ["bean-1"])
fun s1() = "1"
@Bean("bean-1")
@ConditionalOnProperty(name = ["some_property"], matchIfMissing = true)
fun s2() = "2"
@Bean
fun result(
@Qualifier("bean-1") b: String
): Any? {
return null
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79247108/spring-boot-doesnt-fail-if-2-same-beans-are-defined[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия