J'ai l'exemple d'application Spring-boot 1.4.2.RELEASE suivant
@SpringBootApplication
public class Application {
@Value("${spring.application.name}")
private String applicationName;
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Et j'ai la configuration suivante définie dans bootstrap.properties:
spring.application.name=sample-app
Lorsque je l'exécute, j'obtiens l'erreur suivante:
Java.lang.IllegalArgumentException: Could not resolve placeholder 'spring.application.name' in string value "${spring.application.name}"
Une indication sur la raison pour laquelle il ne parvient pas à injecter 'spring.application.name'? Besoin de le définir là pour prendre en charge d'autres nuages de démarrage de printemps.
La première réponse est correcte. Le fichier de propriétés par défaut est application.properties ou application.yml.
Le fichier bootstrap est correctement pour Spring Cloud.
Voir http://projects.spring.io/spring-cloud/spring-cloud.html#_the_bootstrap_application_context
Si vous utilisez Spring Cloud et que le fichier bootstrap ne fonctionne pas, vous devez activer le profil Spring "cloud".
Par exemple en utilisant:
./gradlew -Dspring.profiles.active=cloud bootrun
ou
./mvnw spring-boot:run -Dspring.profiles.active=cloud
Par défaut, si vous ne spécifiez aucune source de propriétés, Spring Boot recherchera votre propriété dans le fichier application.properties
. Par conséquent, vous devez renommer votre fichier de propriétés avec ce nom par défaut ou spécifier manuellement une source de propriétés pour votre bootstrap.properties