#java #spring-boot #kubernetes
Вопрос:
У меня есть приложение для загрузки spring с использованием application.properties через EnvironmentPostProcessor. Я хочу добавить в проект функцию Spring Kubernetes configmap here. В документации говорилось, что эта функция может быть отключена spring.cloud.kubernetes.config.enabled=false
. Когда я добавляю зависимости kubernetes pom.xml
без включения этой функции, приложение выдает ошибку.
bean definition failed; nested exception is java.lang.IllegalStateException: Failed to introspect Class [org.springframework.cloud.context.properties.ConfigurationPropertiesBeans] from ClassLoader [org.springframework.boot.loader.LaunchedURLClassLoader@6767c1fc]
10 Oct 2021 21:09:09,445 ERROR SpringApplication - Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'configurationPropertiesBeans' defined in class path resource [org/springframework/cloud/autoconfigure/ConfigurationPropertiesRebinderAutoConfiguration.class]: Post-processing of merged bean definition failed; nested exception is java.lang.IllegalStateException: Failed to introspect Class [org.springframework.cloud.context.properties.ConfigurationPropertiesBeans] from ClassLoader [org.springframework.boot.loader.LaunchedURLClassLoader@6767c1fc]
Даже если spring.cloud.kubernetes.config.enabled=false
, все равно зависимость переопределяет EnvironmentPostProcessor, поэтому не позволяет загружать правильный контекст для приложения из application.properties
файла. Если я удалю зависимость от Kubernetes pom.xml
, то все снова заработает.