Spring Boot не может найти специфичные для профиля файлы свойств
Я следую документации Spring, чтобы использовать специфичные для профиля файлы свойств для моего приложения SpringBoot. У меня есть 2 файла свойств под src/main/resources
: datasource.properties
для местного развития и datasource-prod.properties
для конфигурации источника данных сервера.
Это мое DataSourceConfiguration.java
класс конфигурации:
@Configuration
@PropertySource("classpath:datasource-{profile}.properties")
@Slf4j
public class DataSourceConfiguration {
@Value("${flad.datasource.driver}")
private String dataSourceDriverClassName;
@Value("${flad.datasource.url}")
private String dataSourceUrl;
@Value("${flad.datasource.username}")
private String dataSourceUsername;
@Value("${flad.datasource.password}")
private String dataSourcePassword;
@Bean
public DataSource getDataBase(){
log.info("Datasource URL = {}", dataSourceUrl);
return DataSourceBuilder
.create()
.driverClassName(dataSourceDriverClassName)
.url(dataSourceUrl)
.username(dataSourceUsername)
.password(dataSourcePassword)
.build();
}
}
Когда я запускаю свой основной класс SpringBootApplication, я получаю следующую ошибку, использую ли я -Dspring.profiles.active=prod
или нет:
17:05:49.008 [restartedMain] ERROR org.springframework.boot.SpringApplication - Application run failed
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [fr.payet.flad.core.config.CoreConfig]; nested exception is java.io.FileNotFoundException: class path resource [datasource-{profile}.properties] cannot be opened because it does not exist
1 ответ
Решение, которое я нашел, - переименовать мои файлы свойств. datasource-local.properties
а также datasource-prod.properties
, используйте @PropertySource таким образом @PropertySource("classpath:datasource-${profile}.properties")
и когда я запускаю приложение SpringBoot, я использую -Dprofile=local
как варианты ВМ