Нужны ваши данные, так как я долгое время застреваю над проблемой.
Я реализую сценарий, в котором я пытаюсь прочитать все данные из файла bootstrap.yaml в файле класса конфигурации.
/src/main/resources/META-INF/spring.factories ->
org.springframework.cloud.bootstrap.BootstrapConfiguration=\
com.xyz.config.BootStrapConfig
/src/main/resources/bootstrap.yml содержит записи ниже ->
spring.cloud.bootstrap.enabled: true
spring.application.name: ms-service
aws.service.name: lambda
зависимости в моем файле gradle.build ->
.........
def poiVersion = "3.14"
def joltVersion = "0.1.1"
def awsSdkVersion = "1.12.585"
def googleGuavaVersion = '24.1-jre'
def springBootVersion = "2.0.0.RELEASE"
def aspectVersion = "1.8.8"
def springCloudVersion = "1.2.2.RELEASE"
api("org.springframework.boot:spring-boot:${springBootVersion}")
api("org.springframework.boot:spring-boot-starter:${springBootVersion}")
api("org.springframework.boot:spring-boot-starter-web:${springBootVersion}")
api("org.springframework.boot:spring-boot-starter-aop:${springBootVersion}")
api("org.springframework.boot:spring-boot-starter-actuator:${springBootVersion}")
api("org.aspectj:aspectjrt:${aspectVersion}")
api("org.aspectj:aspectjweaver:${aspectVersion}")
api('net.sf.json-lib:json-lib:2.4:jdk15')
api('org.apache.commons:commons-lang3:3.7')
api("com.google.guava:guava:$googleGuavaVersion")
api("com.amazonaws:aws-java-sdk-sqs:${awsSdkVersion}")
api("com.amazonaws:aws-java-sdk-sns:${awsSdkVersion}")
api("com.amazonaws:aws-java-sdk-core:${awsSdkVersion}")
api("com.amazonaws:aws-java-sdk-kms:${awsSdkVersion}")
api("com.amazonaws:aws-java-sdk-s3:${awsSdkVersion}")
api("com.amazonaws:elasticache-java-cluster-client:1.1.1")
api("org.springframework.cloud:spring-cloud-aws-messaging:${springCloudVersion}")
api("org.springframework.cloud:spring-cloud-aws-autoconfigure:${springCloudVersion}")
api('org.neo4j:neo4j-cypher-compiler-2.2:2.2.5')
api("com.bazaarvoice.jolt:json-utils:${joltVersion}")
api("com.bazaarvoice.jolt:jolt-core:${joltVersion}")
api('com.nimbusds:oauth2-oidc-sdk:5.63')
api('junit:junit:4.12')
api("org.springframework.boot:spring-boot-starter-test:${springBootVersion}") {
exclude group: "com.vaadin.external.google", module:"android-json"
}
api('org.skyscreamer:jsonassert:1.2.3'){
exclude group: "com.vaadin.external.google", module:"android-json"
}
api('com.google.code.gson:gson:2.8.2')
api('com.github.everit-org.json-schema:org.everit.json.schema:1.8.0')
api ('org.json:json:20180130')
api("org.springframework.cloud:spring-cloud-context:2.0.0.RELEASE")
api("org.springframework.cloud:spring-cloud-starter-bootstrap:3.1.8")
api('org.springframework.retry:spring-retry:1.3.1')
api 'org.springframework:spring-aspects:4.3.8.RELEASE'
testImplementation group: 'org.mockito', name: 'mockito-core', version: '2.22.0'
.....
Я пытаюсь прочитать записи в com.xyz.config.BootStrapConfig.java, как показано ниже
@Configuration
public class BootStrapConfig {
.....
@Value("${aws.service.name}")
private String serviceName;
@Value("${spring.application.name}")
private String appName;
@Bean
public PropertySourceLocator configSourceLocator() throws URISyntaxException {
log.info("BootStrapConfig - configSourceLocator method: serviceName-{}, app name-{}", serviceName, appName);
Map config = new HashMap();
config.put("url", " code that will fetch value from aws");
config.put("username", " code that will fetch value from aws");
config.put("secret","code that will fetch value from aws");
return environment -> {
return new MapPropertySource("configparams", config);
};
}
.....
Основной класс приложения Spring Boot показан ниже:
package com.xyz;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.aws.messaging.config.annotation.EnableSns;
import org.springframework.cloud.aws.messaging.config.annotation.EnableSqs;
import org.springframework.context.annotation.PropertySource;
import org.springframework.retry.annotation.EnableRetry;
@SpringBootApplication(scanBasePackages = "com.xyz", exclude = {
org.springframework.cloud.aws.autoconfigure.context.ContextInstanceDataAutoConfiguration.class,
org.springframework.cloud.aws.autoconfigure.context.ContextStackAutoConfiguration.class,
org.springframework.cloud.aws.autoconfigure.context.ContextRegionProviderAutoConfiguration.class
})
@EnableSqs
@EnableSns
@EnableRetry
@PropertySource({ "classpath:object-mapping.properties","classpath:config.properties"})
public class XYZIntegrationApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(XYZIntegrationApplication.class)
.properties("spring.config.location:classpath:application.yml")
.build().run(args);
}
}
Создал сборку Gradle, и она прошла успешно, но когда я запускаю приложение в intellij локально, приложение завершается с ошибкой ниже
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.xyz.config.BootStrapConfig': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'aws.service.name' in value "${aws.service.name}"
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:405) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
Подробнее здесь: https://stackoverflow.com/questions/790 ... p-yml-file
Приложение SpringBoot-2 не загружает записи из файла bootstrap.yml ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1728845323
Anonymous
Нужны ваши данные, так как я долгое время застреваю над проблемой.
Я реализую сценарий, в котором я пытаюсь прочитать все данные из файла bootstrap.yaml в файле класса конфигурации.
/src/main/resources/META-INF/spring.factories ->
org.springframework.cloud.bootstrap.BootstrapConfiguration=\
com.xyz.config.BootStrapConfig
/src/main/resources/bootstrap.yml содержит записи ниже ->
spring.cloud.bootstrap.enabled: true
spring.application.name: ms-service
aws.service.name: lambda
зависимости в моем файле gradle.build ->
.........
def poiVersion = "3.14"
def joltVersion = "0.1.1"
def awsSdkVersion = "1.12.585"
def googleGuavaVersion = '24.1-jre'
def springBootVersion = "2.0.0.RELEASE"
def aspectVersion = "1.8.8"
def springCloudVersion = "1.2.2.RELEASE"
api("org.springframework.boot:spring-boot:${springBootVersion}")
api("org.springframework.boot:spring-boot-starter:${springBootVersion}")
api("org.springframework.boot:spring-boot-starter-web:${springBootVersion}")
api("org.springframework.boot:spring-boot-starter-aop:${springBootVersion}")
api("org.springframework.boot:spring-boot-starter-actuator:${springBootVersion}")
api("org.aspectj:aspectjrt:${aspectVersion}")
api("org.aspectj:aspectjweaver:${aspectVersion}")
api('net.sf.json-lib:json-lib:2.4:jdk15')
api('org.apache.commons:commons-lang3:3.7')
api("com.google.guava:guava:$googleGuavaVersion")
api("com.amazonaws:aws-java-sdk-sqs:${awsSdkVersion}")
api("com.amazonaws:aws-java-sdk-sns:${awsSdkVersion}")
api("com.amazonaws:aws-java-sdk-core:${awsSdkVersion}")
api("com.amazonaws:aws-java-sdk-kms:${awsSdkVersion}")
api("com.amazonaws:aws-java-sdk-s3:${awsSdkVersion}")
api("com.amazonaws:elasticache-java-cluster-client:1.1.1")
api("org.springframework.cloud:spring-cloud-aws-messaging:${springCloudVersion}")
api("org.springframework.cloud:spring-cloud-aws-autoconfigure:${springCloudVersion}")
api('org.neo4j:neo4j-cypher-compiler-2.2:2.2.5')
api("com.bazaarvoice.jolt:json-utils:${joltVersion}")
api("com.bazaarvoice.jolt:jolt-core:${joltVersion}")
api('com.nimbusds:oauth2-oidc-sdk:5.63')
api('junit:junit:4.12')
api("org.springframework.boot:spring-boot-starter-test:${springBootVersion}") {
exclude group: "com.vaadin.external.google", module:"android-json"
}
api('org.skyscreamer:jsonassert:1.2.3'){
exclude group: "com.vaadin.external.google", module:"android-json"
}
api('com.google.code.gson:gson:2.8.2')
api('com.github.everit-org.json-schema:org.everit.json.schema:1.8.0')
api ('org.json:json:20180130')
api("org.springframework.cloud:spring-cloud-context:2.0.0.RELEASE")
api("org.springframework.cloud:spring-cloud-starter-bootstrap:3.1.8")
api('org.springframework.retry:spring-retry:1.3.1')
api 'org.springframework:spring-aspects:4.3.8.RELEASE'
testImplementation group: 'org.mockito', name: 'mockito-core', version: '2.22.0'
.....
Я пытаюсь прочитать записи в com.xyz.config.BootStrapConfig.java, как показано ниже
@Configuration
public class BootStrapConfig {
.....
@Value("${aws.service.name}")
private String serviceName;
@Value("${spring.application.name}")
private String appName;
@Bean
public PropertySourceLocator configSourceLocator() throws URISyntaxException {
log.info("BootStrapConfig - configSourceLocator method: serviceName-{}, app name-{}", serviceName, appName);
Map config = new HashMap();
config.put("url", " code that will fetch value from aws");
config.put("username", " code that will fetch value from aws");
config.put("secret","code that will fetch value from aws");
return environment -> {
return new MapPropertySource("configparams", config);
};
}
.....
Основной класс приложения Spring Boot показан ниже:
package com.xyz;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.aws.messaging.config.annotation.EnableSns;
import org.springframework.cloud.aws.messaging.config.annotation.EnableSqs;
import org.springframework.context.annotation.PropertySource;
import org.springframework.retry.annotation.EnableRetry;
@SpringBootApplication(scanBasePackages = "com.xyz", exclude = {
org.springframework.cloud.aws.autoconfigure.context.ContextInstanceDataAutoConfiguration.class,
org.springframework.cloud.aws.autoconfigure.context.ContextStackAutoConfiguration.class,
org.springframework.cloud.aws.autoconfigure.context.ContextRegionProviderAutoConfiguration.class
})
@EnableSqs
@EnableSns
@EnableRetry
@PropertySource({ "classpath:object-mapping.properties","classpath:config.properties"})
public class XYZIntegrationApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(XYZIntegrationApplication.class)
.properties("spring.config.location:classpath:application.yml")
.build().run(args);
}
}
Создал сборку Gradle, и она прошла успешно, но когда я запускаю приложение в intellij локально, приложение завершается с ошибкой ниже
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.xyz.config.BootStrapConfig': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'aws.service.name' in value "${aws.service.name}"
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:405) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
Подробнее здесь: [url]https://stackoverflow.com/questions/79082416/springboot-2-application-is-not-loading-entries-from-bootstrap-yml-file[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия