yml example application java spring spring-boot yaml

java - example - Spring Boot: Load @Value del archivo YAML



spring boot application.yml example (1)

M. Deinum tiene razón, la configuración que he proporcionado está funcionando: el archivo yml se yml incorrectamente, por lo que no se pudo encontrar la propiedad.

Necesito cargar una propiedad desde un archivo .yml , que contiene la ruta a una carpeta donde la aplicación puede leer archivos.

Estoy usando el siguiente código para inyectar la propiedad:

@Value("${files.upload.baseDir}") private String pathToFileFolder;

El archivo .yml para desarrollo se encuentra en src/main/resources/config/application.yml , estoy ejecutando la aplicación con el siguiente comando en producción, para anular las configuraciones de desarrollo:

java -jar app.jar --spring.config.location=/path/to/application-production.yml

La documentación de Spring Boot dice:

SpringApplication cargará las propiedades de los archivos application.properties en las siguientes ubicaciones y las agregará al Spring Environment:

  1. Subdirectorio A / config del directorio actual.

  2. El directorio actual

  3. Un paquete classpath / config

  4. La raíz del classpath

Tanto como:

También puede usar archivos YAML (''.yml'') como una alternativa a ''.properties''.

El archivo .yml contiene:

{...} files: upload: baseDir: /Users/Thomas/Code/IdeaProjects/project1/files {...}

Y mi clase de Application está anotada con:

@SpringBootApplication @EnableCaching

Cuando ejecuto la aplicación, obtengo una excepción:

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder ''files.upload.baseDir'' in string value "${files.upload.baseDir}"

¿Tengo que usar la clase YamlPropertySourceLoader o agregar una anotación especial para habilitar el soporte para .yml en Spring Boot?

Editar: El archivo .yml contiene algunas otras propiedades que Spring Boot carga correctamente como dataSource.XXX o hibernate.XXX .