Я обновляю проект весенней загрузки с 2.7.x до 3.3.6.
Сталкиваюсь с проблемой при тестировании с использованием ApplicationContextRunner, где компонент внедряется в конструктор @ Экземпляр ConfigurationProperties имеет значение null. Объект, внедренный в метод @Bean, не является нулевым.
Приведенный ниже тест проходит на 2.7.x, но не проходит на 3.3.6. Похоже, что в версии 3.x произошли изменения в способе загрузки @ConfigurationProperties. При загрузке как часть полного приложения (вместо тестового ApplicationContextRunner/TrivialConfiguration) в оболочку вводится ненулевое значение KafkaProperties.
Может ли кто-нибудь подсказать, какие изменения мне нужно внести? Я не вижу ничего непосредственно связанного с руководствами по миграции.
@Getter
@ConfigurationProperties(prefix = "spring.kafka")
public class KafkaPropertiesWrapper {
private final KafkaProperties kafkaProperties;
public KafkaPropertiesWrapper(KafkaProperties kafkaProperties) {
this.kafkaProperties = kafkaProperties;
}
}
@Getter
public class AnotherWrapper {
private final KafkaProperties kafkaProperties;
public AnotherWrapper(KafkaProperties kafkaProperties) {
this.kafkaProperties = kafkaProperties;
}
}
class KafkaWrapperTest {
@EnableConfigurationProperties({KafkaPropertiesWrapper.class, KafkaProperties.class})
private static class TrivialConfiguration {
@Bean
AnotherWrapper anotherWrapper(KafkaProperties kafkaProperties) {
return new AnotherWrapper(kafkaProperties);
}
}
private ApplicationContextRunner contextRunner = new ApplicationContextRunner()
.withUserConfiguration(TrivialConfiguration.class);
@Test
void startsOk() {
contextRunner
.run(context -> {
assertThat(context).hasSingleBean(KafkaProperties.class);
assertThat(context).hasSingleBean(KafkaPropertiesWrapper.class);
KafkaPropertiesWrapper kafkaPropertiesWrapper = context.getBean(KafkaPropertiesWrapper.class);
assertThat(kafkaPropertiesWrapper.getKafkaProperties()).isNotNull();
}
);
}
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... -construct
SpringBoot 3.3.6 @ConfigurationProperties вводит нулевой объект в конструктор ⇐ JAVA
Программисты JAVA общаются здесь
1733249687
Anonymous
Я обновляю проект весенней загрузки с 2.7.x до 3.3.6.
Сталкиваюсь с проблемой при тестировании с использованием ApplicationContextRunner, где компонент внедряется в конструктор @ Экземпляр ConfigurationProperties имеет значение null. Объект, внедренный в метод @Bean, не является нулевым.
Приведенный ниже тест проходит на 2.7.x, но не проходит на 3.3.6. Похоже, что в версии 3.x произошли изменения в способе загрузки @ConfigurationProperties. При загрузке как часть полного приложения (вместо тестового ApplicationContextRunner/TrivialConfiguration) в оболочку вводится ненулевое значение KafkaProperties.
Может ли кто-нибудь подсказать, какие изменения мне нужно внести? Я не вижу ничего непосредственно связанного с руководствами по миграции.
@Getter
@ConfigurationProperties(prefix = "spring.kafka")
public class KafkaPropertiesWrapper {
private final KafkaProperties kafkaProperties;
public KafkaPropertiesWrapper(KafkaProperties kafkaProperties) {
this.kafkaProperties = kafkaProperties;
}
}
@Getter
public class AnotherWrapper {
private final KafkaProperties kafkaProperties;
public AnotherWrapper(KafkaProperties kafkaProperties) {
this.kafkaProperties = kafkaProperties;
}
}
class KafkaWrapperTest {
@EnableConfigurationProperties({KafkaPropertiesWrapper.class, KafkaProperties.class})
private static class TrivialConfiguration {
@Bean
AnotherWrapper anotherWrapper(KafkaProperties kafkaProperties) {
return new AnotherWrapper(kafkaProperties);
}
}
private ApplicationContextRunner contextRunner = new ApplicationContextRunner()
.withUserConfiguration(TrivialConfiguration.class);
@Test
void startsOk() {
contextRunner
.run(context -> {
assertThat(context).hasSingleBean(KafkaProperties.class);
assertThat(context).hasSingleBean(KafkaPropertiesWrapper.class);
KafkaPropertiesWrapper kafkaPropertiesWrapper = context.getBean(KafkaPropertiesWrapper.class);
assertThat(kafkaPropertiesWrapper.getKafkaProperties()).isNotNull();
}
);
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79248766/springboot-3-3-6-configurationproperties-injecting-a-null-object-into-construct[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия