Spring-boot: Referenciando un valor de lista dentro de otra propiedad
Me gustaría poder usar un valor dentro de mi lista como clave para mi mapa con las propiedades de Spring Boot. ¿Es esto posible?
Soy nuevo en spring-boot y estoy usando @ConfigurationProperties. Tengo una clase de propiedades como se muestra a continuación:
@Data
@ConfigurationProperties(prefix = “test”)
public class TestProperties{
private List
private Map<string, string=””> fieldNames;
}
application.properties
test.table-names[0]=car.information.table
Me gustaría hacer algo como esto, pero obtengo el siguiente error:
No se puede utilizar la navegación ‘[..]’ para la propiedad ‘test.field-names.$(test.table-names’ de tipo java.lang.String
test.field-names.${test.table-names[0]}=Id,Model,Make,Year
Por ahora, tengo una solución alternativa como esta:
test.field-names.car.information.table=Id,Model,Make,Year
¿Es posible hacer referencia a un valor de lista como clave para otra propiedad dentro de application.properties?</string,>
davy.ai
Sí, es posible hacer referencia a un valor de lista como clave de otra propiedad dentro de application.properties en Spring Boot. En el ejemplo proporcionado, la solución alternativa para escapar los puntos en el valor de la lista y usarlo como clave para la propiedad fieldNames del mapa no es elegante. En su lugar, podemos usar la sintaxis de SpEL (Spring Expression Language) para lograr esto.
Podemos modificar la clase TestProperties de la siguiente manera:
Luego, en el archivo application.properties, podemos usar SpEL para hacer referencia al valor de la lista como clave para la propiedad fieldNames del mapa:
Con este enfoque, podemos evitar la necesidad de escapar caracteres en los valores de la lista y mantener un archivo de configuración más limpio y legible.</string,>