Diferencia entre el archivo YAML (.yml) y .properties en Java SpringBoot

Estos son los archivos que tienen diferentes configuraciones, propiedades requeridas para crear y ejecutar la aplicación, como conectarse con la base de datos, cuáles son las credenciales, en qué puerto se ejecutará la aplicación, etc. 

Archivo YAML (.yml): YAML es un lenguaje de configuración. Los lenguajes como Python, Ruby, Java lo usan mucho para configurar las diversas propiedades mientras desarrollan las aplicaciones. 

Si alguna vez usó la instancia de Elastic Search y la base de datos MongoDB, ambas aplicaciones usan YAML (.yml) como su formato de configuración predeterminado. 

Ejemplo:  

#.yml file

some_key:value
some_number:9
some_bool:true

Anidamiento: para el anidamiento, la jerarquía de soporte de archivos .yml usa espacios.  

# .yml file

somemap:
  key:value #use space not tab
  number:9

#inline format                         
  map2: {bool=true, date=2016-01-01}

Definamos una lista en dichos archivos: YAML como parte de su especificación admite la lista.  

#.properties file

# A List
numbers[0] = one
numbers[1] = two

# Inline List
numbers = one, two

Archivo .properties: esta extensión de archivo se utiliza para la aplicación de configuración. Estos se utilizan como archivos de paquetes de recursos de propiedades en tecnologías como Java, etc. 

Ejemplo:  

#.properties file

some_key = value
some_number = 9
some_bool = true

Anidamiento: para el anidamiento, el archivo .properties admite la notación de punto (.). El formato en línea en el archivo .yml es muy similar a JSON 

#.properties file

somemap.key = value 
somemap.number = 9

map2.bool = true
map2.date = 2016-01-01

Definamos una lista en dichos archivos: el archivo .properties no admite la lista, pero Spring usa una array como convención para definir la lista en el archivo .properties.  

#.yml file

numbers:
  - one # use a dash followed by space
  - two

# Inline List
numbers:[one, two]

Tabla de diferencia:  

YAML(.yml) .propiedades
Las especificaciones se pueden encontrar aquí Realmente no tiene una especificación. Lo más parecido que tiene a una especificación es en realidad el javadoc.
Legible por humanos (ambos lo hacen bastante bien en la legibilidad humana) Legible por humanos
Admite key/val, básicamente map, List y tipos escalares (int, string, etc.) Admite clave/val, pero no admite valores más allá de la string
Su uso es bastante frecuente en muchos lenguajes como Python, Ruby y Java. Se utiliza principalmente en java.
Estructura jerarquica Estructura no jerárquica
Spring Framework no admite @PropertySources con archivos .yml admite @PropertySources con archivo .properties
Si está utilizando perfiles de primavera, puede tener varios perfiles en un solo archivo .yml Cada perfil necesita un archivo .properties separado
Al recuperar los valores del archivo .yml, obtenemos el valor del tipo respectivo (int, string, etc.) en la configuración. Mientras que en el caso de los archivos .properties obtenemos strings independientemente del tipo de valor real en la configuración

¿Qué debería usar el archivo .properties o .yml? 

Estrictamente hablando, el archivo .yml es ventajoso sobre el archivo .properties, ya que tiene seguridad de tipo, jerarquía y lista de soportes, pero si usa Spring, Spring tiene una serie de convenciones y conversiones de tipo que le permiten obtener de manera efectiva todo esto. características que YAML le proporciona. 

Una ventaja que puede ver al usar el archivo YAML (.yml) es si está usando más de una aplicación que lee el mismo archivo de configuración. es posible que vea una mejor compatibilidad en otros idiomas para YAML (.yml) en lugar de .properties.
 

Publicación traducida automáticamente

Artículo escrito por Chirag Soni y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *